[编程题] lk [231. 2的幂]

Posted jiyongjia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[编程题] lk [231. 2的幂]相关的知识,希望对你有一定的参考价值。

[编程题] lk 231. 2的幂

题目

技术图片

输入输出

技术图片

方法1:位运算

//方法3:使用位运算消除1
    /*思想:如果是2的n次方,那么它的二进制肯定是0000000100000这种样子,其中是只有一个1(有可能是0000001),我们用位运算消除一次,看能否消除为0,就判断是否是2的幂次方*/
     public boolean isPowerOfTwo1(int n) {
         return n>0 && (n & (n-1))==0;
    }

方法2:循环取模

 //一直模2
    public boolean isPowerOfTwo(int n) {
        if(n==0) {return false;}
        while(n%2==0){
            n = n/2;
        }
        return n==1;
    }

以上是关于[编程题] lk [231. 2的幂]的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode231 2 的幂 / 第53场双周赛

231. 2 的幂

LeetCode 231. 2 的幂

java刷题--231 2的幂

java刷题--231 2的幂

java刷题--231 2的幂