题解 | #求int型正整数在内存中存储时1的个数#
求int型正整数在内存中存储时1的个数
http://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
本题实际上考察的是十进制转化为二进制。利用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;
}