题目链接:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1292
http://acm.hdu.edu.cn/showproblem.php?pid=1047
注意:HDU上有个测试数据输入0立即输出0
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
char str1[105],str2[105];
int st1[105],st2[105];
int t,n;
scanf("%d",&t);
while(t--)
{
int len2=0;
memset(st1,0,sizeof(st1));
scanf("%s",str1);
int len1=strlen(str1);
for(int i=0;i<len1;i++)
st1[i]=str1[len1-i-1]-'0';
if(!strcmp(str1,"0"))
goto cc;
while(scanf("%s",str2) && strcmp(str2,"0"))
{
memset(st2,0,sizeof(st2));
len2=strlen(str2);
for(int i=0;i<len2;i++)
st2[i]=str2[len2-i-1]-'0';
for(int i=0;i<len2;i++)
st1[i]=st1[i]+st2[i];
}
for(int i=0;i<=104;i++)
{
if(st1[i]>=10)
{
st1[i+1]=st1[i+1]+st1[i]/10;
st1[i]=st1[i]%10;
}
}
cc: for(n=104;!st1[n] && n>0;n--);
if(n==0 && st1[0]==0)
printf("0");
else
{
for(int i=n;i>=0;i--)
printf("%d",st1[i]);
}
printf("\n");
if(t>0)
printf("\n");
}
return 0;
}