描述
给你4个自然数,请你将这四个数相加。
输入
输入数据有多组,第一行为测试数据的组数n,下面有n行,每行有4个自然数,每个数最多不超过2008位。
输出
输出4个数相加的结果。
样例输入
2
0 1 2 3
1000000 1000000 1000000 1000000
0 1 2 3
1000000 1000000 1000000 1000000
样例输出
6
4000000
4000000
#include<iostream>
#include<string>
using namespace std;
int main(){
string num[5];
int i,maxlen,n,result,carry;
cin>>n;
while(n--){
maxlen=0;
carry=0;
num[4]="";
for(i=0;i<4;i++){
cin>>num[i];
if(num[i].length()>maxlen)
maxlen=num[i].length();
}
maxlen++;
for(i=0;i<5;i++){
while(num[i].length()<maxlen)
num[i]="0"+num[i];
}
for(i=maxlen-1;i>0;i--){
result=num[0][i]+num[1][i]+num[2][i]+num[3][i]-4*'0'+carry;
num[4][i]=result%10+'0';
carry=result/10;
}
num[4][0]=carry+'0';
while(num[4][0]=='0' && num[4].length()>1)
num[4].erase(0,1);
cout<<num[4]<<endl;
}
return 0;
}