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