大数系列——Integer Inquiry
One of the first users of BIT's new supercomputer was Chip Diller. Heextended his explorationof powers of 3 to go from 0 to 333 and he explored taking various sumsof those numbers. ``This supercomputer is great,'' remarked Chip. ``I only wish Timothy werehere to see theseresults.'' (Chip moved to a new apartment,once one became available onthe third floor of theLemon Sky apartments on Third Street.) InputThe input will consist of at most 100 lines of text,each of whichcontains a single VeryLongInteger.Each VeryLongInteger will be 100 or fewer characters in length,and willonly contain digits (no VeryLongInteger will be negative). The final input line will contain a single zero on a line by itself. OutputYour program should output the sum of the VeryLongIntegers given in the input. Sample Input123456789012345678901234567890 123456789012345678901234567890 123456789012345678901234567890 0 Sample Output370370367037037036703703703670 字符串系列刷得实在蛋疼,先换大数系列刷刷。。。 第一题很水,不愧是大数。 大数相加,倒序输入数组再逐位计算,再倒序输出。 AC代码:
#include<iostream> #include<string> using namespace std; int main() { int a[100] = {0},sum[110] = {0}; string str; while (1) { cin >> str; if (str[0] == '0') break; for (int i = 0; i < (int)str.size(); i++) a[i] = str[(int)str.size() - i - 1] - '0'; for (int i = 0; i < (int)str.size(); i++) { int temp = a[i] + sum[i]; sum[i] = temp % 10; sum[i + 1] += temp / 10; } } int i; for (i = 100; i >= 0; i--) if (sum[i]) break; for (;i >= 0; i--) cout << sum[i]; cout << endl; return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |