面试题10 | 二进制中1的个数 |
利用n & (n - 1),每次减少1个1,直到n为全0,计数即可得到1的个数。
题解:
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner cin = new Scanner(System.in);
int T = cin.nextInt();
int n;
int count;
for (int i = 0; i < T; ++i) {
n = cin.nextInt();
count = 0;
while (n != 0) {
++count;
n = n & (n - 1);
}
System.out.println(count);
}
}
}
感谢阅读!