poj1503 2010.2.17
调试问题:
对于结尾最后的0的判断,一直wa,学到了新的方法
#include <stdio.h>
#include <string.h>
#define MAXN 500+10
void main()
{
int add[MAXN],ladd,num[MAXN],lnum,mid[MAXN],lmid;
int i;
char ch[MAXN];
memset(add,0,sizeof(add));
ladd=0;
while (gets(ch),strcmp(ch,"0")!=0)
{
memset(mid,0,sizeof(mid));
memset(num,0,sizeof(num));
lnum=strlen(ch);
for(i=1;i<=lnum;i++)
num[lnum+1-i]=((int)ch[i-1])-48;
if (ladd<lnum)
lmid=lnum;
else lmid=ladd;
for(i=1;i<=lmid;i++)
{
mid[i]+=add[i]+num[i];
mid[i+1]=mid[i]/10;
mid[i]%=10;
}
if (mid[lmid+1])
lmid++;
memcpy(add,mid,sizeof(mid));
ladd=lmid;
}
while ((!add[ladd])&&(ladd))
{
ladd--;
}
if (ladd==0)
printf("0");
else
for(i=ladd;i>=1;i--)
printf("%d",add[i]);
printf("\n");
}