一道简单的大整数加法题,让我做了整整一晚上,无语~~太马虎了,题目中说每个数长度小于等于100,但和不一定小于100啊,唉~·我就在栽在了这上面~~
代码:
1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<string.h>
4 #include<iostream>
5 using namespace std;
6 int main()
7 {
8 int t,i,len,k,a[103],b[103],l,tem;
9 char str[103];
10 while(scanf("%d",&t)!=EOF)
11 {
12 while(t--)
13 {
14 memset(a,0,sizeof(a));
15 l=0;
16 while(cin>>str)
17 {
18 if(strcmp(str,"0")==0)
19 break;
20 memset(b,0,sizeof(b));
21 len=strlen(str);k=0;
22 for(i=len-1;i>=0;i--)
23 b[k++]=str[i]-'0';
24 l=l>len?l:len;tem=0;
25 for(i=0;i<l;i++)
26 {
27 tem+=a[i]+b[i];
28 a[i]=tem%10;
29 tem=tem/10;
30 }
31 while(tem)
32 {
33 a[l]=tem%10;
34 tem=tem/10;
35 l++;
36 }
37 }
38 k=102;
39 while(!a[k]&&k>0)k--;
40 for(k;k>=0;k--)
41 printf("%d",a[k]);
42 printf("\n");
43 if(t)
44 printf("\n");
45 }
46 }
47 return 0;
48 }