/*
Name: 不用循环计算一个数是否是2的次方
Author: Unimen
Date: 2011/10/27 22:16:37
*/
/*
解题报告:
2^0=1 00000001
2^1=2 00000010
2^2=4 00000100
2^3=8 00001000
以此类推注意到如果一个数是2的n次方,那么这个数的二进制表示中只有一位是1
因此这个问题可以转化成判断一个数的二进制表示中是否只有一个1
*/
#include <iostream>
using namespace std;
int main()
{
int n;
while (cin>>n)
{
if (n & n-1)
{
cout<<"no"<<endl;
}
else
{
cout<<"yes"<<endl;
}
}
}
不用循环计算一个数是否是2的次方
最新推荐文章于 2019-06-09 14:58:00 发布