*大数求和
Problem P 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. Input 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. Output Your program should output the sum of the VeryLongIntegers given in the input. This problem contains multiple test cases! The first line of a multiple input is an integer N,then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks. The output format consists of N output blocks. There is a blank line between output blocks. Sample Input 1 123456789012345678901234567890 Sample Output 370370367037037036703703703670 两个字简洁有木有? #include<stdio.h>
#include<string.h>
#define N 110
int main()
{
char input[N];
int n,m,sum[N],s[N],i,j,t;
scanf("%d",&n);
while(n--)
{
memset(sum,0,sizeof(sum));
while(scanf("%s",input)&&strcmp(input,"0"))//输入0时结束输入
{ //开始对输入的数进行相加
memset(s,sizeof(s));
m=strlen(input);
for(i=0;i<m;i++)
s[i]=input[m-1-i]-'0'; //将输入的数倒序存放在int s[N]中
for(i=0;i<m;i++)
{
sum[i]+=s[i];
if(sum[i]>9)
{
sum[i]%=10;
sum[i+1]++; //进位
}
}
}
for(i=N-1;sum[i]==0&&i>=0;i--)
j=i;
if(j==0)
printf("0");
for(i=j-1;i>=0;i--) //倒序输出 正好输出来就是正序了
printf("%d",sum[i]);
printf("n");
if(n>0)
printf("n");
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |