例如:数字 5 的二进制表示 101,二进制表示示例:
64 32 16 8  4  2  1
0  0  0  0  1  0  1
那么可以用二进制的方式来做,“...”表示前面都是 0
    ... 101
&   ... 001
----------------
        001    count++
然后右移动 1 位:
    ... 010 >>> 1 (丢弃不要了)
&   ... 001
----------------         
        000    不变
再向右边移动 1 位:
    ... 001 >>> 0 (丢弃不要了)
&   ... 001
----------------
        001    count++
再移动后就等于0了。结束循环输出 count。
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意题目要求,需要多组输入输出,则用 hasNextInt
        while(in.hasNextInt()) {
            int num = in.nextInt();
            // 统计 1 的数量
            int count = 0;
            while(num > 0) {
                // 按位与,只要等于1,则说明此位为1,累加
                if((num & 1) == 1) {
                    count ++;
                }
                // 无符号右移,直到 num==0
                num = num >>> 1;
            }
            System.out.println(count);
        }
    }
}