题目:
Given an integer (signed 32 bits), write a function to check whether it is a power of 4.
思路:
如果num是4的power,那么其二进制只能有一位是1,而且必须是在偶数位上。(num&(num-1))==0
保证整个二进制中只有一个1;(num-1) % 3 == 0
保证1位于二进制中的偶数位上。
代码实现:
class Solution {
public:
bool isPowerOfFour(int num) {
return num > 0 && (num&(num-1))==0 && (num-1) % 3 == 0;
}
};