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)) );
    }
};

results matching ""

    No results matching ""