//注意测试数据(其它就是有关大数的加法,由于这一题输入数据最大为100位,则不用考虑压缩)
Input
3
00
00
0
000
0
0
Output
0
0
0
代码:
////////////////////////////////////////// #include<iostream> #include<cstdio> #include<cstring> using namespace std; long long int s[5005]; int n[110][5010]; int main() { int t; int i,j,k; cin>>t; string str; while(t--){ i=0; memset(s,0,sizeof(s)); memset(n,0,sizeof(n)); while(1){ cin>>str; int len=str.size(); if(str[0]=='0'&&len==1) break; for(j=len-1,k=0;j>=0;j--,k++){ n[i][k]=str[j]-48; } i++; } for(k=0;k<=5000;k++){ for(j=0;j<i;j++){ s[k]+=n[j][k]; } if(s[k]>=10){ s[k+1]+=s[k]/10; s[k]%=10; } } j=5000; while(j--){ if(s[j]!=0) break; } if(j>=0){ for(;j>=0;j--) printf("%d",s[j]); cout<<endl; } else cout<<0<<endl; if(t>=1) cout<<endl; } return 0; }