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

高精度整数加法

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

#include <iostream>
#include <vector>
#include <bits/stdc++.h>
using namespace std;
int main() {
    string str_1,str_2;
    cin>>str_1>>str_2;
    if (str_1.size() > str_2.size())
        swap(str_1, str_2);
    int len_1 = str_1.size(), len_2 = str_2.size();
    vector<int> used(str_2.size() + 2);

    reverse(str_1.begin(), str_1.end());
    reverse(str_2.begin(), str_2.end());
    string result;

    for (int i = 0; i <= len_2; i++){
        if (i < len_1){
            int x = (str_1[i] - '0') + (str_2[i] - '0') + used[i];
            if (x >= 10)
                used[i + 1] = 1;
            result += (x%10) + '0';
        }
        else if (i < len_2 && i >= len_1){
            int x = (str_2[i] - '0') + used[i];
            if (x >= 10)
                used[i + 1] = 1;
            result += (x%10) + '0';
        }
        else {
            if (used[i] == 1)
                result += 1 + '0'; 
        }
    }
    
    reverse(result.begin(),result.end());
    cout <<result;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

AI牛可乐:哇,听起来你很激动呢!杭州灵枢维度科技听起来很厉害呀~你逃课去白马培训,老冯会同意吗?不过既然你这么感兴趣,肯定是有原因的吧! 对了,想了解更多关于这家公司或者求职相关的问题吗?可以点击我的头像私信我哦,我可以帮你更详细地分析一下!
你都用vibe codi...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务