一.题目描述:
One of the first users of BIT's new supercomputer was Chip Diller.
He extended his exploration of powers of 3 to go from 0 to 333 and he explored taking various sums of those numbers.
"This supercomputer is great,'' remarked Chip.
"I only wish Timothy were here to see these results.''
(Chip moved to a new apartment, once one became available on the third floor of the Lemon Sky apartments on Third Street.)
输入:
The input will consist of at most 100 lines of text, each of which contains a single VeryLongInteger. Each VeryLongInteger will be 100 or fewer characters in length, and will only contain digits (no VeryLongInteger will be negative).
The final input line will contain a single zero on a line by itself.
输出:
Your program should output the sum of the VeryLongIntegers given in the input.
样例输入:
123456789012345678901234567890
123456789012345678901234567890
123456789012345678901234567890
0
样例输出:
370370367037037036703703703670
二.题目分析
长整数加法
三.代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int sum[1100]={0},i,j,jin,temp,len;
char str[110];
len=0;
for(i=0;i<110;i++)
sum[i]=0;
while(scanf("%s",str))
{
if(strlen(str)==1&&str[0]=='0')
break;
jin=0;j=0;
for(i=strlen(str)-1;i>=0;i--)
{
temp =jin+str[i]-'0'+sum[j];
sum[j]=temp%10;
jin=temp/10;
j++;
}
while(jin>0)
{
temp =jin+sum[j];
sum[j]=temp%10;
jin= temp/10;
j++;
}
if(j>len)
len=j;
}
i=len-1;
while(sum[i]==0)
i--;
if(i==-1)
{
printf("0\n");
return 0;
}
for(;i>=0;i--)
printf("%d",sum[i]);
printf("\n");
return 0;
}