参考了同学的代码!
Java:
import java.math.BigInteger;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
BigInteger a,b;
int t;
t = cin.nextInt();
while ((t--)>0){
a = cin.nextBigInteger();
b = cin.nextBigInteger();
System.out.println(a.add(b));
}
}
}
c:
#include<stdio.h>
#include<string.h>
int main()
{
int q,x,y,i,j,e[10010],c[10010],d[10010],m,n;
char a[10010],b[10010];
scanf("%d",&q);
for(j=0;j<q;j++){
scanf("%s%s",a,b);
x=strlen(a);
y=strlen(b);
m=x;
n=y;
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
memset(e,0,sizeof(e));
for(i=0;i<m;i++){
c[i]=a[x-1]-48;
x--;
}
for(i=0;i<n;i++){
d[i]=b[y-1]-48;
y--;
}
if(m>n){
for(i=0;i<m;i++){
e[i]+=c[i]+d[i];
if(e[i]>=10){
e[i]=e[i]-10;
e[i+1]++;
}
}
if(e[m]>0){
for(i=m;i>=0;i--){
printf("%d",e[i]);
}
printf("\n");
}
else
for(i=m-1;i>=0;i--){
printf("%d",e[i]);
}
printf("\n");
}
if(m<=n){
for(i=0;i<n;i++){
e[i]=c[i]+d[i]+e[i];
if(e[i]>=10){
e[i]=e[i]-10;
e[i+1]++;
}
}
if(e[n]>0){
for(i=n;i>=0;i--){
printf("%d",e[i]);
}
printf("\n");
}
else
for(i=n-1;i>=0;i--){
printf("%d",e[i]);
}
printf("\n");
}
}
return 0;
}