import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int input = sc.nextInt();
        int counter = 0;
        int tmp=0;
        int isRunning=1;

        while(isRunning==1){
            if(input-input/2*2==1){
                counter++;
                input=(input-1)/2;
            }else{
                input/=2;
            }
            if(input==0){
                isRunning=0;
            }
        }

        System.out.println(counter);

    }
}

先上代码。老规矩,把主框架的Main主类和main方法写出来,并且实例化Scanner对象,读取输入的值。
之后利用除2取余法,每次都尝试是否有多余的余数1,有就取出。最终的结果一定是input=0。其实不需要这个isRunning来控制死循环也可以,input是否=0本身就是死循环结束的条件。
最后输出结果即可。