思路
这道题三种做法.
第一种:递归
class Solution {
public boolean isPowerOfTwo(int n) {
if(n==1||n==2) return true;
if(n<=0||n%2!=0) return false;
return isPowerOfTwo(n/2);
}
}
运行结果
第二种:位运算
class Solution{
public boolean isPowerOfTwo(int n) {
return n>0 && ((n & (n-1))==0);
}
}
运行结果
第三种:还是位操作
class Solution{
public boolean isPowerOfTwo(int n) {
return n > 0 && (n & -n) == n;
}
}