专栏:https://blog.csdn.net/2301_79293429/category_12545690.html
题目描述
给定两个十进制整数 : A,B
你需要把它们的二进制形式以十进制的运算法则相加输出结果。
例如:
A=3,B=2的时候,A 的二进制表示是 : 11 , B 的二进制表示是 10 ,你需要输出答案为 : 21
输入描述:
一行两个十进制整数: A,B
输出描述:
一行一个整数,表示相加的结果。
示例1
输入
2 3
输出
21
示例2
输入
5 4
输出
201
备注:
对于 100 % 的数据: 1<=A,B<=32768
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#include<string.h>
#define ll long long//可能要考虑 正负(涉及到位运算都要考虑) 的情况
/*该题范围:1<=A,B<=32768,所以不需考虑负数的情况*/
int main()
{int a, b;scanf("%d%d", &a, &b);ll sum=0,m=1;/*注意开long long*/while (a||b){int a2 = a & 1, b2 = b & 1;sum += (a2 + b2)*m;m *= 10;a >>= 1;/**/b >>= 1;/**/}printf("%lld\n", sum);return 0;
}
恭喜你今天又进步了一点点啦~