题目:输入任意十进制数转为二进制并且统计二进制中1出现的次数
样例:
输入:
10
输出:
1010
2
tip: 二进制数减一 可视为从最低位为1往后取反 eg:1010 - 1 = 1001 ,在将
(1010)&(1001)做与运算,即可消去第一位1,即1000,即统计减一的次数
,直到消去所有的1,即为1的个数。
(Java)代码如下:
public static void main(String[] args) {
int count = 0;//统计减1次数
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(Integer.toString(n, 2));//二进制输出
while(n != 0) {
n = n&(n-1);
count++;
}
System.out.println(count);
}
网友评论