Power of Four

07/18/2016 Math Bit Manipulation

Question

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?


Solution

Result: Accepted Time: 4 ms

Here should be some explanations.

bool isPowerOfFour(int num) {
    return num > 0 && num == (num&(-num)) && !(num & 0xaaaaaaaa);
}

Complexity Analytics

  • Time Complexity:
  • Space Complexity: