没啥难度,十进制转换为二进制,再统计二进制中1的数目
#include <iostream>
#include <set>
using namespace std;
int main(){
int n = 0;
while (cin >> n) {
multiset<int> res;
int rem = n % 2;
n /= 2;
res.insert(rem);
while (n != 0) {
rem = n % 2;
n /= 2;
res.insert(rem);
}
int count = res.count(1);
cout << count << endl;
}
return 0;
}

京公网安备 11010502036488号