文章

1

粉丝

57

获赞

0

访问

258

头像
大整数加法 题解:c++
P1474 武汉大学2018年机试题
发布于2024年3月14日 22:53
阅读数 258

#include<bits/stdc++.h>
using namespace std;

int main() {
    string s1, s2;
    while (cin >> s1 >> s2) {
        int jw = 0; // 进位,初始化为0
        for (int i = s1.size() - 1; i != -1; i--) { // 从字符串末尾开始逐位相加
            if ((s1[i] - '0') + (s2[i] - '0') + jw >= 10) { // 如果当前位相加后大于等于10
                s1[i] = '0' + (s1[i] - '0') + (s2[i] - '0') + jw - 10; // 计算当前位的结果并更新s1
                jw = 1; // 设置进位为1
            } else { // 如果当前位相加后小于10
                s1[i] = '0' + (s1[i] - '0') + (s2[i] - '0') + jw; // 计算当前位的结果并更新s1
                jw = 0; // 重置进位为0
            }
        }
        if (jw > 0) { // 如果最高位相加后有进位
            cout << '1' + s1; // 输出结果时在最前面加上进位
        } else {
            for (int j = 0; j < s1.size(); j++) {
                cout << s1[j]; // 输出结果
            }
        }
        cout << endl;
    }
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发