使用数组对超过 int 型的数值进行加法运算
#include<iostream>
using namespace std;
#include<vector>
vector<int> add(vector<int> &v1,vector<int> &v2){
vector<int>res;
int t=0;//进位
//由于v1,v2长度未知,需要确定在其范围内
//如果不用vector而使用普通数组直接初始化全部为0,全部遍历一遍即可
for(int i=0;i<v1.size()||i<v2.size();i++){
if(i<v1.size()) t+=v1[i];
if(i<v2.size()) t+=v2[i];
res.push_back(t%10);
t/=10;
}
if(t)res.push_back(1);//最后一位是否进位
return res;
}
int main()
{
string s1,s2;
cin>>s1>>s2;//字符串接收超长数
vector<int>v1,v2;
for(int i=s1.size()-1;i>=0;i--)v1.push_back(s1[i]-'0');
for(int i=s2.size()-1;i>=0;i--)v2.push_back(s2[i]-'0');
auto C=add(v1,v2);
for(int i=C.size()-1;i>=0;i--)cout<<C[i];
}