[编程题] 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;
}