方法一:使用二进制基本计算,统计余数为0即可

import java.util.*;
public class Main{
    public static void main(String [] args){
        getNumber();
    }
    public static void getNumber(){
        Scanner scan = new Scanner(System.in);
        int input = scan.nextInt();
        int remainder = 0;
        int flag = 0;
        while(input>0){
            remainder = input%2;
            if(1 == remainder){
                flag++;
            }
            input = input/2;
        }
        System.out.print(flag);
    }
}

方法二:直接使用位移操作,除以二即将所有位向右移动一位,高位补0

import java.util.*;
public class Main{
    public static void main(String [] args){
        getNumber();
    }
    public static void getNumber(){
        Scanner scan = new Scanner(System.in);
        int input = scan.nextInt();
        int remainder = 0;
        int flag = 0;
        while(input>0){
            remainder = input%2;
            if(1 == remainder){
                flag++;
            }
            input = input>>1;
        }
        System.out.print(flag);
    }
}