文章

20

粉丝

86

获赞

2

访问

4.5k

头像
大整数加法 题解:
799 VIP
P1474 武汉大学2018年机试题
发布于2024年3月9日 10:23
阅读数 307

#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)
    {
      &...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发