二进制?十进制!

题目链接:nowcoder 218048

到主站看:https://blog.csdn.net/weixin_43346722/article/details/116779653

题目大意

给你两个十进制表示的数,要你把它们转成二进制,然后再看做十进制做加法。

思路

直接按照题目模拟就可以了。

代码

#include<cstdio>
#include<iostream>

using namespace std;

int ca[100001], cb[100001];
int na, nb, a, b;

int main() {
    scanf("%d %d", &a, &b);

    while (a) {
        ca[++na] = a % 2;
        a >>= 1;
    }
    while (b) {
        cb[++nb] = b % 2;
        b >>= 1;
    }

    for (int i = max(na, nb); i >= 1; i--)
        printf("%d", ca[i] + cb[i]);

    return 0;
}