描述
求两个不超过200位的非负整数的和。
输入
有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。
输出
一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
样例输入
22222222222222222222
33333333333333333333
样例输出
55555555555555555555
#include<stdio.h>
#include<string.h>
int main()
{
char a[300],b[300];
while(scanf("%s %s",a,b)!=EOF){
int i,len1,len2,len,a1[300],b1[300],c[300];
memset(a1,0,sizeof(a1));
memset(b1,0,sizeof(b1));
memset(c,0,sizeof(c));
len1=strlen(a);
len2=strlen(b);
if(len1>len2)
len=len1;
else len=len2;
for(i=0;i<len1;i++)a1[i]=a[len1-i-1]-'0';
for(i=0;i<len2;i++)b1[i]=b[len2-i-1]-'0';
for(i=0;i<len;i++){
c[i]+=(a1[i]+b1[i]);
if(c[i]>9){
c[i]-=10;
c[i+1]++;
}
}
while(c[i]==0)i--;
if(i<0)printf("0\n");
else{
for(;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}
}
return 0;
}