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

高精度整数加法

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

#include <iostream>
#include <string>
using namespace std;
int main() {
    string input1, input2;
    getline(cin, input1);
  	getline(cin, input2);
    string result = "";
    if (input1.length() < input2.length()) {
        swap(input1, input2);
    }//确保input1是长的
    int plus = 0, temp = 0;
    int i = input1.length()-1,j=input2.length()-1;//从个位开始
    while(j>=0) {
        temp = (input1[i] - '0') + (input2[j] - '0') + plus;
        result.push_back(temp % 10+'0');
        plus=temp/10;
        j--;
        i--;
    }//公共部分
    while(i>=0){
        temp = (input1[i]-'0')+plus;
        result.push_back(temp%10+'0');
        plus=temp/10;
        i--;
    }//剩余部分
    if (plus) {
        result.push_back(plus+'0');
    }//最后一个进位
    for(int i=result.size()-1;i>=0;i--){
        cout<<result[i];
    }//反过来输出
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

我是小红是我:学校换成中南
点赞 评论 收藏
分享
10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务