高精度加减法就是模拟人类的列竖式

因为有进位所以为了方便我们倒序,这里就可以使用vector来进行存储了

#include<iostream>
#include<vector>
using namespace std;
vector<int> a,b;
string sa,***;
vector<int> add(vector<int> a,vector<int> b)
{
	if(a.size()<b.size())return add(b,a);
    vector<int> c;
    int t=0;
    for(int i=0;i<a.size();i++)
    {
    	if(i<a.size())t+=a[i];
        if(i<b.size())t+=b[i];
        c.push_back(t%10);//害怕有进位
        t/=10;//考虑到进位,所以t/10
    }
    if(t)//如果最后一次有进位,就放入
    c.push_back(t);
    return c;
}
int main()
{
	cin>>sa>>***;
    for(int i=sa.size()-1;i>=0;i--)
    	a.push_back(sa[i]-'0');
    for(int i=***.size()-1;i>=0;i--)
    	b.push_back(***[i]-'0');
    auto c=add(a,b);
    for(int i=c.size()-1;i>=0;i--)cout<<c[i];
    return 0;
}