没啥难度,十进制转换为二进制,再统计二进制中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; }