#include <iostream>
using namespace std;

int main() {
    int res = 0;
    int n;cin>>n;
    while (n) {
        if(n&1){
            res++;
        }
        n>>=1;
    }
    cout<<res;

    return 0;
}
// 64 位输出请用 printf("%lld")

使用二进制,每次右移判断末尾是否为1,然后统计输出即可。

活动地址https://www.nowcoder.com/discuss/726480854079250432