0342. Power of Four

342. Power of Four #

题目 #

给定一个整数,判断它是否是 4 的幂次方。

思路 #

某个整数是 4 的幂次需要满足三个条件:

  • 正数
  • 二进制表示中只含有一位 1
  • 二进制表示中最高位 1 所在比特位为偶数

代码 #

class Solution {
    public boolean isPowerOfFour(int n) {
        if (n <= 0) return false;
        
        boolean found = false;
        for (int i = 31; i >= 0; i--) {
            if (((n >> i) & 1) == 1) {
                if ((i & 1) == 1 || found == true) return false;
                found = true;
            }
        }
        
        return true;
    }
}