问题 A: a+b
题目描述
实现一个加法器,使其能够输出a+b的值。
输入
输入包括两个数a和b,其中a和b的位数不超过1000位。
输出
可能有多组测试数据,对于每组数据,
输出a+b的值。
样例输入 Copy
6 8
2000000000 30000000000000000000
样例输出 Copy
14
30000000002000000000
#include <bits/stdc++.h>
using namespace std;
vector<int> a,b,c;
vector<int> add(vector<int> &a,vector<int> &b)
{
if(a.size()<b.size()){
return add(b,a);
}
int t=0;
for(int i=0;i<a.size();i++){
t+=a[i];
if(i<b.size()){
t+=b[i];
}
c.push_back(t%10);
t/=10;
}
if(t){
c.push_back(t);
}
return c;
}
int main()
{
string s1,s2;
while(cin>>s1>>s2){
for(int i=s1.length()-1;i>=0;i--){
a.push_back(s1[i]-'0');
}
for(int i=s2.length()-1;i>=0;i--){
b.push_back(s2[i]-'0');
}
c=add(a,b);
for(int i=c.size()-1;i>=0;i--){
cout<<c[i];
}
a.clear(),b.clear(),c.clear();
cout<<endl;
}
return 0;
}