位运算简单 LeetCode342. 4的幂

342. 4的幂

描述

给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x

分析

4^x = 2^(2x)

  1. 先判断是否是2的次幂
  2. 判断2的次幂的指数是不是偶数。
    特殊情况0,直接返回false。

也可以理解为,只要n的二进制1只有一个且只出现在偶次位置,则n一定也是4的幂次。

class Solution {
    public boolean isPowerOfFour(int n) {
        int index = 0;
        boolean flag = false;
        if(n == 0){
            return false;
        }
        for(int i = 0; i < 32; i++){
            if((n >> i & 1 ) == 1){
                if(flag){
                    return false;
                }else{
                    flag = true;
                    index = i;
                }
            }
        }
        if((index & 1) == 1){
            return false;
        }
        return true;
    }
}
上一篇:android—ListView与RecyclerView滑动显示和隐藏浮动按钮


下一篇:【labellmg】打开步骤