poj 1503:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
const int maxn=110;
char s[maxn];
int sum[maxn];
int main()
{
int i,j,len;
while(scanf("%s",s))
{
if(strcmp(s,"0")==0)break;
len=strlen(s);
for(i=110,j=len-1; i>=0,j>=0; i--,j--)
{
sum[i]+=s[j]-'0';
}
}
for(i=110; i>=0; i--)
{
sum[i-1]+=sum[i]/10;
sum[i]=sum[i]%10;
}
for(i=0; i<=110 ; i++)
{
if(sum[i])
{
break;
}
}
if(i==111)printf("0\n");
else
{
for(j=i; j<=110; j++)
{
printf("%d",sum[j]);
}
printf("\n");
}
return 0;
}
hdu 1002:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=1005;
char a[maxn],b[maxn];
int sum[maxn];
int main()
{
int t;
int i,j,len1,len2,tcase=0;
int max_len;
while(~scanf("%d",&t))
{
while(t--)
{
memset(sum,0,sizeof(sum));
scanf("%s%s",a,b);
len1=strlen(a);
len2=strlen(b);
max_len=max(len1,len2);
for(i=0; i<len1; i++)
{
sum[i]+=a[len1-1-i]-'0';
}
for(i=0; i<len2; i++)
{
sum[i]+=b[len2-i-1]-'0';
}
for(i=0; i<=max_len; i++)
{
if(sum[i]>9)
{
sum[i]-=10;
sum[i+1]++;
}
}
printf("Case %d:\n",++tcase);
printf("%s + %s = ",a,b);
for(i=maxn;; i--)
{15
if(sum[i])
break;
}
for(j=i; j>=0; j--)
{
printf("%d",sum[j]);
}
if(t>0)
printf("\n\n");
else
printf("\n");
}
}
return 0;
}