在写代码的过程中可能会遇到判断一个整数是否为2的整数次幂的问题,除了枚举的方法,还可以利用二进制的知识进行简单快速判断。
2的整数次幂用二进制表示只存在一个1和n个0,因此,我们利用位运算&判断一个整数a与a-1的&是否为0即可。具体代码如下。
代码非常简洁。
12345678910111213141 大专栏 如何利用一条简单语句判断一个整数是否为2的整数次幂51617 |
#include<bits/stdc++.h>using namespace std;typedef long long LL;bool judge(LL x){ if((x&(x-1))==0)return true;return false;}int main(){LL a;cin>>a;if(judge(a))cout<<"yes"<<endl;else cout<<"no"<<endl;} |
原文地址:https://www.cnblogs.com/lijianming180/p/12099616.html
时间: 2024-10-13 00:04:44