// 活动地址: 牛客春招刷题训练营 - 编程打卡活动
#include<iostream>
#include<algorithm>
#include<set>
using namespace std;
void solve(){
int n,m;
// 看见这题的第一眼 哇怎么这么熟悉啊 噢 原来是 之前学的一个函数啊 就是__builtin_popcount 函数 它就是直接求一个数的二进制里面有多少个一
while(cin>>n){
m=0;
while(n){
n=n&(n-1);
m++;
} // 这样跟快 就是每次都会去除掉n的二进制里的一个1
cout<<m<<"\n";
}
// 但这题还有一个跟快的方法就是 用位运算
//cout<<__builtin_popcount(n)<<"\n"<<__builtin_popcount(m)<<"\n";
}
int main(){
int T=1;
while(T--){
solve();
}
return 0;
}
// 活动地址: 牛客春招刷题训练营 - 编程打卡活动

京公网安备 11010502036488号