/*
高精度加法
案例
129
+ 12
-------
141
*/
#include <iostream>
#include <vector>
using namespace std;
vector<int> add(vector<int> &A, vector<int> &B)
{
vector<int> c; //定义int型vector容器,存储数字位
int t = 0;
//如果i小于A字符串的长度,或者B的长度,执行下列循环
for(int i = 0;i < A.size() || i < B.size();i++){
if(i < A.size()) t+=A[i]; // 如i = 0的时候,t = 9
if(i < B.size()) t+= B[i];// i = 0 的时候 ,t = 9 + 2 = 11
c.push_back(t%10); //把个位存储到c容器中
t /= 10; //如果t>10,那么这样就可以求到进位1,加入到第二次计算中
}
if(t) c.push_back(1);//如果有剩余进位,那么把它加入到c容器中
return c;//返回C容器
}
int main(void)
{
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'); //字符'number' - '0' 等于 int number
for (int i = b.size() - 1; i >= 0; i--)
B.push_back(b[i] - '0');
vector<int> c = add(A, B);
for (int i = c.size() - 1; i >= 0; i--)
cout << c[i];
}