uva 424大数加算

739 ワード

#include <stdio.h>
#include<string.h>
const int MAXN=110;

int main(int argc, char *argv[])
{
	int sum[MAXN];
	char temp[MAXN];
	int k,s,i,c,len;
	memset(sum,0,sizeof(sum));//sum   
	while(scanf("%s",temp))
	{
	   if (temp[0]=='0') break;
	   len=strlen(temp);
	   for (i=0;i<len;i++)  
		   temp[i]-=48;//temp ascii   10   
	   k=0;
	   s=0;
	   c=0;
	   i=len-1;
	   while(1)
	   {
   	       s=temp[i--]+sum[k]+c;
		   sum[k++]=s%10;
		   c=s/10;
		   if(c==0 && i<0) break;	   	
   	   } 	   
	}
	 for (i=MAXN-1;i>=0;i--) 
		     if (sum[i]) break;//      
     for (;i>=0;i--)
		 printf("%d",sum[i]);
		 printf("
"); return 0; }