- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
求两个不超过200位的非负整数的和。
- 输入
- 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。
- 输出
- 一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
- 样例输入
-
22222222222222222222 33333333333333333333
- 样例输出
-
55555555555555555555
- 来源
- 程序设计实习2007
代碼實現:
1 #include<cstdio> 2 #include<cstring> 3 int la,lb,lc; 4 int a[210],b[210],c[210]; 5 char cha[210],chb[210]; 6 int main(){ 7 scanf("%s%s",&cha,&chb); 8 la=strlen(cha);lb=strlen(chb); 9 for(int i=0;i<la;i++) a[i]=cha[la-i-1]-'0'; 10 for(int i=0;i<lb;i++) b[i]=chb[lb-i-1]-'0'; 11 lc=la; 12 if(lb>lc) lc=lb; 13 for(int i=0;i<lc;i++){ 14 c[i]+=a[i]+b[i]; 15 if(c[i]>9){ 16 c[i+1]++; 17 c[i]%=10; 18 if(i+1==lc) lc++; 19 } 20 } 21 while(!c[lc]&&lc>0) lc--; 22 for(int i=lc;i>=0;i--) printf("%d",c[i]); 23 printf(" "); 24 return 0; 25 }
。。。