文章
20
粉丝
130
获赞
2
访问
11.7k
#include<bits/stdc++.h>
using namespace std;
string Add(string a, string b)
{
//让a的长度大于b
if(a.size() <b.size()) swap(a,b);
//模拟加法运算,用到进位carry
string r(a.size(),0);//存放a+b的和
b.insert(b.begin(),a.size() - b.size(),0);//b对齐a
//模拟加法过程
int carry=0;//进位数
for(int i=a.size()-1;i>=0;i--)
{
int sum=(a[i]-'0')+(b[i]-'0')+carry;//9+3=12,进位1,取2
r[i]=(sum %10)+'0';//转化为字符存储
carry= sum/10;
}
//超出a长度,继续进位,在r头部插入进位数
if(carry>0){
r.insert(r.begin(),carry+'0');//注意要转为字符
}
return r;
}
int main()
{
string a,b;
while(cin>>a>>b)
{
&...
登录后发布评论
暂无评论,来抢沙发