java
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int count = 0;
while(num > 1){
if(num % 2 == 1){
count++;
}
num = num / 2;
}
if(num == 0){
System.out.println(count);
}
System.out.println(count + 1);
}
}
描述
对于给定的 int 型的十进制整数 nn,统计其在内存中存储时 11 的个数。换句话说,即统计其二进制表示中 11 的个数。
输入描述:
在一行上输入一个整数 n(0≦n<231)n(0≦n<231),代表给定的数字。
输出描述:
在一行上输出一个整数,代表 nn 的二进制表示中 11 的个数。
思路
1、while循环,0和1单独计算;
2、每次对2进行取余,取余为1,则计算+1;
3、对2进行除法,进入下一次循环