Leetcode(Java)-342. 4的幂

浪子不回头ぞ 提交于 2020-01-31 04:24:25

给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。

示例 1:

输入: 16
输出: true
示例 2:

输入: 5
输出: false


进阶:
你能不使用循环或者递归来完成本题吗?

 

思路1:一般方法,除到无法整除再判断

class Solution {
    public boolean isPowerOfFour(int num) {
        while(num > 0 && num % 4 == 0)
        {
            num /=4;
        }
        return num  == 1;
    }
}

思路2:位运算

class Solution {
  public boolean isPowerOfFour(int num) {
    return (num > 0) && ((num & (num - 1)) == 0) && ((num & 0xaaaaaaaa) == 0);
  }
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!