A + B Problem II
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 210231 Accepted Submission(s): 40490
2 1 2 112233445566778899 998877665544332211
Case 1: 1 + 2 = 3 Case 2: 112233445566778899 + 998877665544332211 = 1111111111111111110#include<stdio.h> #include<string.h> int main() { int t,i,j,k,l,p; int q=0; char a[1010],b[1010]; int c[1010]={0},d[1010]={0}; scanf("%d",&t); //getchar(); while(t--) { q++; memset(a,0,sizeof(char)); memset(b,0,sizeof(char)); <span style="color:#6633ff;BACKGROUND-COLOR: #ffffff">memset(c,0,sizeof(c)); memset(d,0,sizeof(d)); // memset(c,0,sizeof(int)); //memset(d,0,sizeof(int)); 此处错误,sizeof()内是需要清零的数组总长度 //memset(c,0,sizeof(int)*1010); 上下两种均可,切记 ,,切记 ,, //memset(d,0,sizeof(int)*1010); </span> scanf("%s",a); scanf("%s",b); k=strlen(a); l=strlen(b); for(i=k-1,j=0;i>=0;j++,i--) c[j]=a[i]-'0'; for(i=l-1,j=0;i>=0;j++,i--) d[j]=b[i]-'0'; for(i=0;i<1010;i++) { c[i]=c[i]+d[i]; if(c[i]>=10) { c[i]=c[i]%10;c[i+1]++; } } for(i=1010-1;c[i]==0&&i>=0;i--);//第二次做此题,就错在1010没减1,导致正确答案前面有好多0输出。如下部: printf("Case %d:\n",q); printf("%s + %s = ",a,b); if(i>=0) for(;i>=0;i--) { printf("%d",c[i]); } else printf("0"); printf("\n"); if(t) printf("\n"); } return 0; }
111111
999999
90000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000001111110