题解 | 查找输入整数二进制中1的个数
解题思路:
- 对
num与1进行求余操作,依据求余运算的特性,当二进制数中当前所判断的位值为1时,经过与1的求余运算后,该二进制数除了最后一位保持不变外,其余位都会被置为0,这等价于对原二进制数进行位与运算后得到的结果为1。随后,将该二进制数不断右移,通过重复上述判断过程,即可统计出该二进制数中1的个数。
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int num = in.nextInt();
System.out.println(countBinaryOneTotal(num));
}
}
public static int countBinaryOneTotal(int num) {
int rs = 0;
while (num > 0) {
if ((num & 1) == 1) {
rs++;
}
num = num >> 1;
}
return rs;
}
}
查看11道真题和解析