时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:341
解决:174
-
题目描述:
-
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
-
提示:
-
注意输入数据中,VeryLongInteger 可能有前导0
-
答疑:
- 解题遇到问题?分享解题心得?讨论本题请访问: http://t.jobdu.com/thread-7842-1-1.html
代码清单
#include <stdio.h>
#include <string.h>
#define SIZE 110
char input[SIZE];
int sum[SIZE] = {0};
void add(int i,int n){
if(sum[i] + n >= 10){
sum[i] = (sum[i]+n) % 10;
add(i+1,1);
}
else sum[i] += n;
}
int main(){
while(gets(input)){
if(strcmp(input,"0") == 0) break;
int len = strlen(input);
for(int i=0; i<=len-1; i++)
add(i,input[len-1-i]-'0');
}
int flag;
for(int i=SIZE-1; i>=0; i--)
if(sum[i] != 0){
flag = i;
break;
}
for(int i=flag; i>=0; i--)
printf("%d",sum[i]);
printf("\n");
return 0;
}
/**************************************************************
Problem: 1119
User: denallo
Language: C
Result: Accepted
Time:10 ms
Memory:912 kb
****************************************************************/