题解 | #求int型正整数在内存中存储时1的个数#
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
位运算一个一个减去左边的1就行:
import java.util.Scanner; import java.lang.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static Integer count = 0; public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int a = in.nextInt(); getNum(a); System.out.print(count); } } public static void getNum(int a) { if (a != 0) { count++; getNum((a - 1) & a); } } }