有时候在做加法的时候,由于有符号int的范围在-2^31 ~ 2~31-1之间,所以有可能超过int的范围,这时候就需要用字符串来存储数据,然后手动模拟加法的过程,最后把结果输出。
代码:
#include<iostream>
#include<vector>
#include<string>
using namespace std;
string s1,s2;
vector<int> x1,x2;
vector<int> ADD(vector<int> a,vector<int> b){
vector<int> res;
int t=0;
for(int i=0;i < a.size() || i<b.size() || t;i++){
//这样做不需要对齐
if(i < a.size()) t+=a[i];
if(i < b.size()) t+=b[i];
res.push_back(t%10);
t/=10;
}
return res;
}
int main(){
cin>>s1>>s2;
for(int i=s1.size()-1;i>=0;i--) x1.push_back(s1[i]-'0');
for(int i=s2.size()-1;i>=0;i--) x2.push_back(s2[i]-'0');
auto C=ADD(x1,x2);
for(int i=C.size()-1;i>=0;i--) cout<<C[i];
return 0;
}
评论区