题解 | #高精度整数加法#

高精度整数加法

http://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6

模拟加法运算。零空间开销!
# include<bits/stdc++.h>
using namespace std;

int main()
{
    string s1, s2;
    getline(cin, s1);
    getline(cin, s2);
    int len1 = s1.length()-1, len2 = s2.length()-1;
    string ans = "";
    int carry = 0;
    while(len1>=0&&len2>=0)
    {
        int a = s1[len1]-'0', b = s2[len2]-'0';
        int sum = carry+a+b;
        ans.insert(0, to_string(sum%10));
        carry = sum/10;
        len1--,len2--;
    }
    while(len1>=0)
    {
        int a = s1[len1]-'0';
        int sum = carry+a;
        ans.insert(0, to_string(sum%10));
        carry = sum/10;
        len1--;
    }
    while(len2>=0)
    {
        int a = s2[len2]-'0';
        int sum = carry+a;
        ans.insert(0, to_string(sum%10));
        carry = sum/10;
        len2--;
    }
    if(carry>0)
        ans.insert(0, to_string(carry));
    cout<<ans<<endl;
    return 0;
}


全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务