[凡鸽鸽]《有手就行02》一条语句判断整数是不是2的整数次方

《有手就行02》

一条语句判断整数是不是2的整数次方
本博是对《算法营02》的一点补充
未阅读过的读者可以点击下面的链接进行转跳

[凡鸽鸽]《算法营02》实现输入一个整数,输出该数二进制中表示1的个数

按照传统,先上代码(解释在下文):

if(((n - 1) & n) == 0)cout << "整数" << n << "是2的整数次方" << endl;

解释:

1.如果整数为2的整数次方,则二进制中仅含有 1 个 1 ;
2.故 令整数减一后 与 他原本身进行&运算;
3.若等于0,则整数是2的整数次方,反之不为0,则整数不是2的整数次方。

(完整代码)
#include <iostream>
using namespace std;
int main()
{
	system("color F0");
	int n, count = 0; 
	cout << "请输入需要判断的整数:" << endl;cin >> n ; //获取输入的整数
	//核心代码 ↓↓↓ 
	if(((n - 1) & n) == 0)cout << "整数" << n << "是2的整数次方" << endl;
    //核心代码 ↑↑↑ 
	else cout << "整数" << n << "不是2的整数次方" << endl;
	system("pause");
	return 0;
}

测试运行结果如图所示:
测试01
测试02

测试03

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值