/*
问题描述:用 O(1) 时间检测整数 n 是否是 2 的幂次。
来源:LintCode
作者:syt
问题描述:用 O(1) 时间检测整数 n 是否是 2 的幂次。
来源:LintCode
作者:syt
日期:2017-8-20
思路:根据2的幂二进制特点,即为1,10,100,1000....只要去除二进制中最低点的1,该数即为零
*/
#include <iostream>
using namespace std;
/*
* @param n: An integer
* @return: True or false
*/
bool checkPowerOf2(int n) {
// write your code here
if (n > 0)
{
if ((n&(n - 1)) == 0)
return true;
else
return false;
}
else
return false;
}