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

高精度整数加法

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")

全部评论

相关推荐

07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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