题目描述
给定两个整数$A$和$B$,让你求出$A + B$的值。
输入
第一行输入一个整数$T$,代表有$T$组测试数据。
每组数据占两行,第一行输入一个整数$A$,第二行输入一个整数$B$。
注:$1 <= T <= 30,1 <= A, B <= 10^{666666}$。
输出
对每组数据,输出$A + B$的最后结果。
样例输入
1
233333333333333333333333333333333333333
666666666666666666666666666666666666666
样例输出
899999999999999999999999999999999999999
1 #include<cstdio> 2 #include<cstring> 3 char a[1000000],b[1000000],c[1000000],d[1000000],e[1000000]; 4 int main() 5 { 6 int t,len1,len2; 7 scanf("%d",&t); 8 while(t--) 9 { 10 memset(a,0,sizeof(a)); 11 memset(b,0,sizeof(b)); 12 memset(c,0,sizeof(c)); 13 memset(d,0,sizeof(d)); 14 memset(e,0,sizeof(e)); 15 scanf("%s",a); 16 len1=strlen(a); 17 scanf("%s",b); 18 len2=strlen(b); 19 for(int i=0;i<len1;i++) 20 c[i]=a[len1-i-1]-'0'; 21 for(int i=0;i<len2;i++) 22 d[i]=b[len2-i-1]-'0'; 23 int m=0,i; 24 for(i=0;i<len1||i<len2;i++) 25 { 26 e[i]=(m+c[i]+d[i])%10+'0'; 27 m=(m+c[i]+d[i])/10; 28 } 29 // for(i=0;i<len1||i<len2;i++) 30 // { 31 // e[i]=(m+c[i]-'0'+d[i]-'0')%10+'0'; 减去字符0为什么不对??? 32 // m=(m+c[i]-'0'+d[i]-'0')/10; 33 // } 34 if(m!=0) e[i]='1'; 35 int len3=strlen(e); 36 37 for(int i=len3-1;i>=0;i--) 38 printf("%c",e[i]); 39 printf(" "); 40 } 41 return 0; 42 }