本题实际上考察的是十进制转化为二进制。利用multiset容器来存储二进制,提高查找速度。
#include <iostream>
#include <set>
using namespace std;
int main() {
int N;
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;
count = res.count(1);
cout << count;
return 0;
}