A+B=C问题。\
我们可以将两个高精度相加看做一个竖式加法。\
这样的话,两位数相加的乘法的得数就变成了 $A_i+B_i+进位$ 了。\
然后将多余的位数变成进位。\
如果有多余的位数,那么就向前补一位。\
最后删除前导零。\
C++代码
#include <bits/stdc++.h>
using namespace std;
int a[100010];
int b[100010];
int main() {
string s, t;
cin >> s >> t;
int lena = s.length();
int lenb = t.length();
for (int i = 0; i < lena; i ++)
a[lena - i - 1] = s[i] - '0';
for (int i = 0; i < lenb; i ++)
b[lenb - i - 1] = t[i] - '0';
int l = max(lena, lenb) + 1; // +1, 这样不用使用多余进位
for (int i = 0; i < l; i ++)
a[i] += b[i];
for (int i = 0; i < l; i ++)
a[i + 1] += a[i] / 10, a[i] %= 10;
while (l && ! a[l])
l --;
for (int i = l; i >= 0 ; i --)
printf("%d", a[i]);
puts("");
return 0;
}
python代码:
a=int(input())
b=int(input())
print(a+b)