题目
输入一个long类型的数值, 求该数值的二进制表示中的1的个数 .
思路
// 获取N
// 若 N != 0 则说明一定有1
// N = N & (N-1), 将N最右端的1抹掉了。
// 再去查看N还有没有 1
import java.util.Scanner;
public class Main_erjinzhi_number_of_2 {
public static void main(String[] args) {
// 获取N
// 若 N != 0 则说明一定有1
// N = N & (N-1), 将N最右端的1抹掉了。
// 再去查看N还有没有 1
Scanner scan = new Scanner(System.in);
int count = 0;
long N = scan.nextLong();
while (N != 0) {
count++;
N = N & (N - 1);
}
System.out.println(count);
}
}
https://leetcode-cn.com/problems/er-jin-zhi-zhong-1de-ge-shu-lcof/solution/mian-shi-ti-15-er-jin-zhi-zhong-1de-ge-shu-wei-yun/