LeetCode 231.2的幂
题目:
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
算法:
若一个数是2的幂次的话定会有n & (n - 1) == 0这个关系成立
所以直接用位运算可做。
这个题目实际上是判断n对应的二进制中时候只有一个1
代码:
class Solution {
public:
bool isPowerOfTwo(int n) {
if(n <= 0) { return false; }
return ((n & (n - 1)) == 0) ? true : false;
}
};