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