Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
m=n,m==n==0,这些情况都考虑了,但是还是WA,,应该注意点啥呢?牛人们,帮忙看看哈~这是pku2282的代码改过来的。 #include<iostream> using namespace std; __int64 an[11], bn[11]; void fun(__int64 sn[],__int64 n) { __int64 i,c,k,s,pown; for(k=s=0,pown=1; n>0; k++,n/=10,pown*=10) { c = n % 10; for(i=0; i<10; i++) sn[i] += c * k * (pown/10); for(i=0; i<c; i++) sn[i] += pown; sn[c] += 1 + s; sn[0] -= pown; s += c * pown; } } int main() { __int64 i, j, a, b; while(scanf("%I64d%I64d",&a, &b) && a!=-1 || b!=-1) { if(a > 0) a--; for(i=0;i<10;i++) an[i] = bn[i] = 0; fun(an, a); fun(bn, b); //for(i=0;i<9;i++) // printf("%I64d ", bn[i] - an[i]); //printf("%I64d\n",bn[9] - an[9]); if(a + 1 == b) printf("%I64d\n",(bn[0]-an[0])*2); else if((a==0)&&(b==0)) printf("2\n"); else if(a == 0) printf("%I64d\n",bn[0]-an[0] + 1); else printf("%I64d\n",bn[0]-an[0]); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator