#include<iostream>
#include<vector>
using namespace std;
vector<int> add(vector<int>& A, vector<int>& B) {
if (A.size() < B.size()) return add(B, A);//保证A的位数大于B
int t = 0;
vector<int> C;
for (int i = 0; i < A.size(); i++) {
t += A[i];
if (i < B.size())t += B[i];//如果B加到最后一位,则不再加
C.push_back(t % 10);
t /= 10;
}
if (t) C.push_back(t);
return C;
}
int main() {
string a, b;
vector<int> A, B;
cin >> a >> b;
for (int i = a.size() - 1; i >= 0; i--)A.push_back(a[i] - '0');
for (int i = b.size() - 1; i >= 0; i--)B.push_back(b[i] - '0');
auto C = add(A, B);
for (int i = C.size() - 1; i >= 0; i--) cout << C[i];
cout << endl;
return 0;
}
该算法的适用场景是超大数的加法运算
整体思路就是回想自己做加法时的