思路如下:
1、得到数的二进制序列,得到方式为:这个数模2 除2,直到这个数变为 0 ;
2、对二进制序列中的1进行计数,计数方式:写一个计数器即可。
import jdk.nashorn.internal.ir.WhileNode;
import java.util.Scanner;
public class onenumber {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);//输入要计算的数
int num = sca.nextInt();
int count = 0;
while (num != 0){
if (num % 2 == 1){//得到序列中的一个1
count++;
}
num = num / 2;//去掉得到的这个1
}
System.out.println(count);
15的二进制为1111,程序结果如下: