复习一下进制转换API:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int cnt = 0;
String str = Integer.toBinaryString(num);
for(int i = 0; i < str.length(); i++){
if(str.charAt(i) == '1')
cnt++;
}
System.out.print(cnt);
}
}
顺便看到一位大佬的位运算做法,放在这里以供学习: 原文枫火蓮天 :
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int num = in.nextInt(); //读取数字
int n = 0; //计数变量
for(int i=0; i < 32; i++){
if((num&1) == 1) //如果末位为1则计数
n++;
num = num >>> 1; //无符号右移
}
System.out.println(n);
}
}