经典string型数字相加
作者:
miki765
,
2024-04-03 17:10:17
,
所有人可见
,
阅读 4
经典string型数字相加
#include<bits/stdc++.h>
using namespace std;
string add(string a,string b)
{
int carry=0;//进位操作
while(a.size()<b.size()) a='0'+a;//判断长度是否相等,不相等在前面补0
while(a.size()>b.size()) b='0'+b;
string s=a;
for(int i=a.size()-1;i>=0;i--)
{
s[i]=(a[i]-'0'+b[i]-'0'+carry)%10+'0';//-'0'是将字符值转换成数字值,+'0'则相反
carry=(a[i]-'0'+b[i]-'0'+carry)/10;
}
if(carry>0) s='1'+s;
return s;
}
int main()
{
string a="12";
string b="159";
string ans=add(a,b);
cout<<ans;//171
return 0;
}