方法介绍:
n = n &(n - 1)
只需要统计与运算的次数即可得到1的个数
C++实现代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
int main(void) {
int n = 0;
cin >> n;
int count = 0;
while (n) {
n = n & (n - 1);
count++;
}
cout << count;
return 0;
}
Java实现代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int count = 0;
while(n != 0){
n = n & (n-1);
count++;
}
System.out.println(count);
}
}