方法一:
public static void main(String[] args){
int n = 32;
while(n>0){
if(n%2==0){
n = n/2;
if(n==1){
System.out.println("是");
n=0;
}
}else{
System.out.println("否");
n=0;
}
}
}
方法二:
public static void main(String[] args){
int n = 30;
/* while(n>0){
if(n%2==0){
n = n/2;
if(n==1){
System.out.println("是");
n=0;
}
}else{
System.out.println("否");
n=0;
}
}*/
if(((n-1)&n) ==0&&n!=0){
System.out.println("是");
}else{
System.out.println("否");
}
}
注:方法二中主要注意到 ((n-1)&n) ==0&&n!=0 条件。
这里显然是方法二最优。