1119.BigInteger
- 题目描述:
-
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 <iostream> #include <cstdio> #include <cstring> using namespace std; const int MAX_N = 100; char s[MAX_N + 1]; int sum[MAX_N * 2]; int main() { while (gets(s) && strcmp(s, "0") != 0) { int len = strlen(s), i, j; for (i = len - 1, j = MAX_N * 2 - 1; i >= 0; i--, j--) { int x = sum[j] + s[i] - '0'; sum[j] = x % 10; sum[j - 1] += x / 10; } for ( ; sum[j] > 9; j--) { sum[j - 1] += sum[j] / 10; sum[j] %= 10; } } int i; for (i = 0; i < MAX_N * 2 - 1 && sum[i] == 0; i++); for ( ; i < MAX_N * 2; i++) printf("%d", sum[i]); putchar('\n'); return 0; }