题目链接:http://acm.fafu.edu.cn/problem.php?id=1406
代码:
#include <stdio.h>
#include <string.h>
char ans[101]={0};
int add(char *a1,char *b1)
{
int len1,len2;
int i,j,k=0;
char t=0,a2[100],b2[100];
len1=strlen(a1);
len2=strlen(b1);
j=0;
for(i=len1-1;i>=0;i--)
{
a2[j]=a1[i];
j++;
}
j=0;
for(i=len2-1;i>=0;i--)
{
b2[j]=b1[i];
j++;
}
//为对齐数位,长度不同的用0补充
if(len1>len2)
{
j=len1;
for(i=len2;i<len1;i++)
b2[i]='0';
}
else
{
j=len2;
for(i=len1;i<len2;i++)
a2[i]='0';
}
for(i=0;i<j;i++)
{
ans[k]=a2[i]-48+b2[i]-48+t;
t=0;
if(ans[k]>=10)
{
t=ans[k]/10;
ans[k]%=10;
}
k++;
}
if(t != 0)
ans[k] = t;
else
k--;
return k;
}
int main()
{
char a[100],b[100];
int i;
scanf("%s",&a);
scanf("%s",&b);
i=add(a,b);
while(i>=0)
{
printf("%d",ans[i]);
i--;
}
printf("\n");
return 0;
}