使用列竖式的思想,输入字符串后转为数组,按位相加,如果一位>=10,即将本位模10,进位(更高位加一)
代码:
#include <iostream>
using namespace std;
int x, y, t, s;
string s1, s2;
int a[509], b[509];
int main () {
cin >> s1 >> s2;
for (int i = s1.length() - 1; i >= 0; i--) a[++x] = (s1[i] - '0');
for (int i = s2.length() - 1; i >= 0; i--) b[++y] = (s2[i] - '0');
s = max(x, y);
for (int i = 1; i <= s; i++) {
b[i] = b[i] + a[i] + t;
if (b[i] >= 10) {
b[i] %= 10;
t = 1;
}
else t = 0;
}
if (t == 1) b[++s] = 1;
for (int i = s; i >= 1; i--) cout << b[i];
return 0;
}