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本身就是死循环结束的条件。
最后输出结果即可。

京公网安备 11010502036488号