简单的大数相加哈 #include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { //freopen("temp.txt", "r", stdin); int c[102], ans[102]; char s[101]; // s[100]可能是'\0' memset(ans, 0, sizeof(ans)); while (cin >> s) { if (strcmp(s, "0") == 0) break; memset(c, 0, sizeof(c)); int len = strlen(s); for (int i = 0; i < len; ++i) { c[i] = s[len-1-i] - '0'; } int carry = 0; // 进位 for (int i = 0; i < 102; ++i) { ans[i] = ans[i] + c[i] + carry; carry = ans[i] / 10; ans[i] = ans[i] % 10; } } int i; // 保存第一个非1数 for (i = 101; i >= 0; --i) if (ans[i] != 0) break; for (; i >= 0; --i) cout << ans[i]; cout << endl; return 0; }