题解 | 二进制位中1的数量
二进制位中1的数量
https://www.nowcoder.com/practice/3e392d0ed7e543f3a4ae883d1470ca9d
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
public class Main {
private static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// private static StreamTokenizer st = new StreamTokenizer(reader);
private static PrintWriter writer = new PrintWriter(new BufferedOutputStream(System.out));
private static long n;
public static void main(String[] args) throws IOException {
n = Long.parseLong(reader.readLine());
writer.println(getBitCount2(n));
writer.flush();
writer.close();
reader.close();
}
private static int getBitCount1(long x) {
int cnt = 0;
while (x != 0) {
if ((x & 1) == 1) {
cnt++;
}
x >>>= 1;
}
return cnt;
}
private static int getBitCount2(long x) {
int cnt = 0;
while (x != 0) {
x = (x & (x - 1));
cnt++;
}
return cnt;
}
}
查看10道真题和解析
OPPO公司福利 1225人发布