大数加法

a+b

http://www.nowcoder.com/questionTerminal/4c39c984ea3848b48e111b8e71ec1dd4

考察的大数加法,王道书上说是高精度整数
没有采用他给的板子,直接用字符串按照规则进行加法运算。

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string addString(string a,string b)
{
    string res;
    int carry=0;
    int i=a.size()-1;
    int j=b.size()-1;
    while(i>=0 && j>=0)
    {
        int num=carry+a[i]-'0'+b[j]-'0';
        res+=num%10+'0';
        carry=num/10;
        i--;j--;
    }
    while(i>=0)
    {
        int num=carry+a[i]-'0';
        res+=num%10+'0';
        carry=num/10;
        i--;
    }
    while(j>=0)
    {
        int num=carry+b[j]-'0';
        res+=num%10+'0';
        carry=num/10;
        j--;
    }
    if(carry>0)
        res+=to_string(carry);
    reverse(res.begin(),res.end());
    return res;
}
int main()
{
    string a,b;
    while(cin>>a>>b)
    {
        cout<<addString(a,b)<<endl;
    }
    return 0;
}
全部评论

相关推荐

已老实求offer😫:有点像徐坤(没有冒犯的意思哈)
点赞 评论 收藏
分享
Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
评论
22
收藏
分享
牛客网
牛客企业服务