牛客网二进制?十进制!c++解法(简单版的解法)

链接:https://ac.nowcoder.com/acm/contest/19306/1010
来源:牛客网

给定两个十进制整数 : A,B

你需要把它们的二进制形式以十进制的运算法则相加输出结果。

例如:
A=3,B=2 的时候,A 的二进制表示是 : 11 , B 的二进制表示是 10 ,你需要输出答案为 : 21

#include<iostream>
using namespace std;
double fun(int x)//做了一个函数因为这里有a,b复用
{
	int bin,temp=0;
	double i = 1.0, j = 0.0;
	while (x != 0) {
		bin = x % 2;//用3举例这里做完是1第二次为1
		x = x / 2;//x为1但是循环条件结束是x=0所以还会做一次循环这样变成0然后结束
		j = j + i * bin;//除以2然后倒过来加上去,第一次的时候j是0+1*1是1第二次 j=1+10*1
		i = i * 10;//位数变化,i变为10
	}
	return j;//返回11
}
int main() 
{
	int a, b;
	cin >> a >> b;
	printf("%.lf", fun(a) + fun(b));
}

我们这边用的计算方法是除以2求余然后反过来排列就是一个数的二进制数。
如果还有不会的小伙伴私信我我给你详细解答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lsewcx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值