题目:
Given an integer, write a function to determine if it is a power of two.
判断一个数是不是2的n次幂。
思路:
把n减一,然后两个数位与。如果结果为0,就是2的n次幂。如果结果非0,就不是2的n次幂。比如二进制形式为:1000,减1之后的结果为0111,位于的结果为0。
代码:
class Solution {
public:
bool isPowerOfTwo(int n)
{
if(n <= 0)
return false;
return !(n & n-1);
}
};