题目链接:http://poj.org/problem?id=1503
水题。
#include<stdio.h>
#include<string.h>
#include<math.h>
int an1[1003],an2[1003];
char line1[1003],line2[1003];
int alen,blen;
int add(int maxlen)
{
int i,j=0;
for(i=0;i<maxlen;i++)
{
an1[i]+=an2[i];
if(an1[i]>=10)
{
an1[i]-=10;
an1[i+1]++;
}
if(an1[i]!=0)
j=i; //记录最高位数,函数返回值
}
return j;
}
int main()
{
int i,j;
strcpy(line1,"0");
alen=0;
memset(an1,0,sizeof(an1));
while(scanf("%s",line2)>0)
{
if(strcmp(line2,"0")==0)
break;
memset(an2,0,sizeof(an2));
blen=strlen(line2);
for(j=0,i=blen-1;i>=0;i--)
an2[j++]=line2[i]-'0';
alen=add(alen+blen+3);
}
for(i=alen;i>=0;i--)
printf("%d",an1[i]);
printf("\n");
scanf("%d");
return 0;
}