AcWing 791. 高精度加法
原题链接
简单
作者:
永远热爱
,
2021-03-14 11:45:00
,
所有人可见
,
阅读 290
#include<iostream>
#include<vector>
using namespace std;
vector<int> add(vector<int> &c, vector<int> &d) //这个函数的那个类型要注意是vector 这样才能返回一个vector类型的数组
{
vector<int> res;
int t=0;
int k=c.size();
int l=d.size();
for(int i=0;i<k||i<l;i++) //这里注意只用一个变量就行了 就是i 那个要是size()不行的话就是用一个int类型变量来存那个数组的长度长度
{
if(i<k)t=t+c[i];
if(i<l)t=t+d[i];
res.push_back(t%10);
t/=10;
}
if(t)res.push_back(1); //这个是要进位的 最后那个 这个一定要记住 如果t!=0 要进位。
return res;
}
int main()
{
string a,b;
vector<int> c,d;
cin>>a>>b;//123456
for(int i=a.size()-1;i>=0;i--)c.push_back(a[i]-'0');//654321;
for(int i=b.size()-1;i>=0;i--)d.push_back(b[i]-'0');
auto res=add(c,d);
for(int i=res.size()-1;i>=0;i--)cout<<res[i];
cout<<endl;
return 0;
}