超长整数相加(HJ78)
一:解题思路
Time:O(n),Space:O(1)
二:完整代码示例 (C++版和Java版)
C++代码如下:
#include <iostream> #include <string> using namespace std; int main() { string a = ""; string b = ""; while (cin >> a >> b) { while (a.size() < b.size()) a = "0" + a; while (a.size() > b.size()) b = "0" + b; int temp = 0; int carry = 0; for (int i = a.size() - 1; i >= 0; i--) { temp = a[i] - '0' + b[i] - '0' + carry; a[i] = temp % 10+'0'; if (temp / 10) carry = 1; else carry = 0; } if (carry) a = "1" + a; cout << a << endl; } return 0; }