本题思路:
1.首先本题的计算量很大,用一般的方法没法得到结果,所以我们会用到数组,来储存位数
2.我们要注意先将字符串转化为数字,然后储存,并且是按个位到最高位的顺序储存起来
3.计算,注意进位
4.倒叙输出
#include<iostream>
#include<string>
using namespace std;
int main() {
int i, j;
int c, d;
int a[600] = { 0 }, b[620] = { 0 }, t[620] = { 0 };
string q, p;
cin >> q >> p;
c = q.length();//求长度
d = p.length();
int len = max(c, d);
for (i = c - 1, j = 1; i >= 0; i--, j++) {
a[j] = q[i] - '0';//将字符转化为数字,且从小到大的位储存起来
}
for (i = d - 1, j = 1; i >= 0; i--, j++) {
b[j] = p[i] - '0';
}
for (i = 1; i <= len; i++) {
t[i] += a[i] + b[i];
t[i + 1] = t[i] / 10;
t[i] %= 10;
}
if (t[len + 1])len++;//如果最高位大于等于10,要进位
for (i = len; i >= 1; i--) {//最大位先输出
cout << t[i];
}
}