string add(string a,string b)
{
string ss;
int i,temp,v=0;
if(a.size()<b.size()) //将字符串长的赋给string a,短的赋给string b
{
ss=a;
a=b;
b=ss;
}
reverse(a.begin(),a.end()); //反转字符串,函数包含在algorithm头文件中
reverse(b.begin(),b.end());
for(i=0;i<b.size();i++) //将长度相同部分相加
{
temp=a[i]-'0'+b[i]-'0'+v;
a[i]=temp%10+'0';
v=temp/10;
}
for(i=b.size();i<a.size();i++) //将string a中多出来的部分+进位v,继续进行操作
{
temp=a[i]-'0'+v;
a[i]=temp%10+'0';
v=temp/10;
}
if(v==1) //如果最后存在进位
a=a+"1";
reverse(a.begin(),a.end()); //最后反转回来
return a;
}
大数相加模版
最新推荐文章于 2022-11-20 18:15:16 发布