【模拟】二进制求和

#include <iostream>
using namespace std;
string addBinary(string a, string b){
    string res;
    int carry = 0;  // 进位
    int i = a.size() - 1;
    int j = b.size() - 1;
    while(i >= 0 || j >= 0 || carry != 0){
        int A = i >= 0 ? a[i--] - '0' : 0;
        int B = i >= 0 ? b[j--] - '0' : 0;
        int sum = A + B + carry;
        carry = sum / 2;
        res = to_string(sum % 2) + res;
    }
    return res;
}
int main(){
    string a,b;
    cin >> a >> b;
    cout << addBinary(a, b) << endl;
}
© 版权声明
THE END
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容