题解思路:一种是使用辗转相除法,将十进制转为二进制,在求解的过程中统计1出现的次数;一种是使用位运算,通过判断与1进行与运算的结果,来统计1出现次数
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Integer line = scanner.nextInt(); Integer count = count1NumberOfBinary1(line); // Integer count = count1NumberOfBinary2(line); System.out.println(count); } private static Integer count1NumberOfBinary1(Integer line) { int mod,quotient,count=0; while (true){ quotient = line/2; mod = line%2; if (mod == 1) count++; if (quotient == 0) break; else{ line = quotient; } } return count; } }