342. Power of Four
Given an integer (signed 32 bits), write a function to check whether it is a power of 4.
Example: Given num = 16, return true. Given num = 5, return false.
Follow up: Could you solve it without loops/recursion?
只有一个1,并且二进制位在(1, 3, 5)上有1
num&(0x55555555)这句是判断1是不是在奇数位上
class Solution {
public:
bool isPowerOfFour(int num) {
return num <= 0?false:(!(num&(num-1)) && (num&(0x55555555)) );
}
};