题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1002
C语言源码:
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,num,lena,lenb,lenc;
char a[1001],b[1001];
int c[1002];
while(scanf("%d",&n)!=EOF)
{
for(num=1;num<=n;num++)
{
getchar();
scanf("%s %s",a,b);
for(i=0;i<1002;i++)
c[i]=0;
lena=(int)strlen(a)-1;
lenb=(int)strlen(b)-1;
i=0;
while(lena>=0&&lenb>=0)
{
c[i]=c[i]+a[lena]-'0'+b[lenb]-'0';
if(c[i]>=10)
{
c[i]=c[i]-10;
c[i+1]++;
}
lena--;
lenb--;
i++;
}
if(lena<0)
{
while(lenb>=0)
{
c[i]=c[i]+b[lenb]-'0';
if(c[i]>=10)
{
c[i]=c[i]-10;
c[i+1]++;
}
lenb--;
i++;
}
}
if(lenb<0)
{
while(lena>=0)
{
c[i]=c[i]+a[lena]-'0';
if(c[i]>=10)
{
c[i]=c[i]-10;
c[i+1]++;
}
lena--;
i++;
}
}
lenc=i-1;
while(c[lenc]==0)
lenc--;
printf("Case %d:\n",num);
printf("%s + %s = ",a,b);
for(i=lenc;i>=0;i--)
printf("%d",c[i]);
printf("\n");
if(num!=n)
printf("\n");
}
}
}