问题: 输入一个整数,判断这个数是不是2的次方。
思路: 判断该整数的二进制是否只有一个1,判断 (n-1)&n 是否等于0即可。如果不能理解请参考我的上一篇文章二进制中1的个数。
代码实现:
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
if((n&(n-1))==0)
cout<<"true";
else
cout<<"false";
return 0;
}