美文网首页
判断一个数为2的整数次幂

判断一个数为2的整数次幂

作者: CXY_XZL | 来源:发表于2021-05-16 20:46 被阅读0次

方法一

解题思路:一个数为2的整数次幂,那么它必将被2整除
代码如下:

public static boolean isPowerOf2(){
  int temp = 1;
  while(temp<=num){
    if(temp == num){
        return true;
    }
    temp = temp * 2;
  }
  return false;
}

public static void main(String[] args){
  System.out.println(isPowerOf2(32));
  System.out.println(isPowerOf2(33));
}

以上算法时间复杂度为O(logn),但还有更好的办法,如下:


方法二

解题思路:8为2的整数次幂,转换为二进制为1000,在二进制的基础上减一后结果是111,而1000 & 111 在位运算中结果为0,总结如下表:

示例.png

代码如下:

public static boolean isPowerOf2(int num){
  return (num&num-1) == 0;
}

补充:此方法时间复杂度为O(1)

相关文章

  • 算法小技巧

    判断某个数是否为2的幂

  • 算法练习3:查看一个数是不是2的整数幂(巧用位运算)

    题目 给一个正整数,判断这个数是不是2的整数次幂,比如16 = 2^4,返回ture; 15非2的整数次幂,返回f...

  • 判断一个数为2的整数次幂

    方法一 解题思路:一个数为2的整数次幂,那么它必将被2整除代码如下: 以上算法时间复杂度为O(logn),但还有更...

  • 快速判断x的幂——x进制法 2020-07-27(未允禁转)

    快速判断x的幂——x进制法 1.快速判断一个数是否为2的幂 思路:如果一个数是2的幂,那么它的二进制数一定只含有一...

  • 位运算的一些技巧

    判断一个数是不是2的整数次幂 对于2的整数次幂,2进制的形式的一个特点是只有一个1。我第一次遇到这个问题是在一个公...

  • 如何判断一个数是否为2的整数次幂

    如果一个整数是2的整数次幂,当它转化为二进制时,只有最高位是1,其他位都是0。 十进制二进制是否为2的整数次幂81...

  • [编程题] 超级素数幂

    如果一个数字能表示为pq(表示幂运算)且p为一个素数,q为大于1的正整数就称这个数叫做超级素数幂。现在给出一个正整...

  • 算法记录

    如何判断一个整数是否是2的整数次幂 如果一个整数是2的整数次幂,那么,一定其所拥有的bit,一定只有一位是1,其余...

  • python笔记1

    //向下取整,/取浮点数 **幂运算 is判断引用,==判断值

  • 位运算小算法

    判断一个数是不是2的N次幂(能被2整除)swift篇 按照二进制中只有一个1的时候才是2的N次幂,例如000000...

网友评论

      本文标题:判断一个数为2的整数次幂

      本文链接:https://www.haomeiwen.com/subject/qibrjltx.html