2的幂

问题陈述

给定一个整数,编写一个函数来判断它是否是 2 的幂次方

代码实现

解法一:

1
2
3
4
5
6
7
8
9
class Solution{
public boolean isPowOfTwo(int n){
if(n==0) return false;//2的幂不会等于0.
while(n%2==0){//如果n是2的倍数
n/=2;//不断除2,若是2的幂最后值为1.
}
return n==1;
}
}

解法二:

1
2
3
4
//位运算,对n>0 && n&(n-1)==0,则n必为2的幂。
class Solution{
return n > 0 && (n & (n - 1)) == 0;
}