算法
(位运算和数学)
结论:$2$的幂的二进制中有且仅有一位为$1$。
于是我们可以统计一下$n$的二进制表示中$1$的个数即可。
C++ 代码
class Solution {
public:
bool isPowerOfTwo(int n) {
int cnt = 0;
while (n && cnt < 2) {
if ((n & 1) == 1) cnt++;
n >>= 1;
}
return cnt == 1;
}
};