[LeetCode] 342. 4的幂

4^x 其实可以等效于 22x,所以我们仍然是通过位运算求这个2y是多少,然后判断这个y是不是2的倍数就可以了。

class Solution {
    public boolean isPowerOfFour(int n) {
        if (n == 1) return true;
        int cnt = 0;
        int k = 0;

        while (n > 0) {
            if ((n & 1) == 1) {
                k++;
            }
            cnt++;
            n >>= 1;
        }

        return (k == 1) && (cnt % 2 == 1);
    }
}
原文地址:https://www.cnblogs.com/acbingo/p/14856917.html