转换为:一个二进制中多少个1
【核心代码】
if(((N-1)&N)==0)
{System.out.println("yes");}
else
System.out.println("no");
步骤:
1.非2的整数次方:
21 | 1 | 0 | 1 | 0 | 1 |
21减1 | 1 | 0 | 1 | 0 | 0 |
&运算 | 0 | 0 | 0 | 0 | 0 |
2.2的整数次方:特征 只有最高位为1
16 | 1 | 0 | 0 | 0 | 0 |
16减1 | 0 | 1 | 1 | 1 | 1 |
&运算 | 0 | 0 | 0 | 0 | 0 |
知识点:
println( ) 换行打印
print( ) 连续打印,不换行
完整:
import java.util.Scanner;
public class a {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int N=sc.nextInt();
System.out.println(Integer.toString(N, 2));
if(((N-1)&N)==0)
{ System.out.println("yes"); }
else
System.out.println("no");
}
}