#include <iostream> #include <cmath> using namespace std; //解题思路:int最大为2^32,从最大2^32遍历到最小2^0,依次整除,整除得到一就count++,并将数字减去2^i int main() { int num; cin>>num; int count=0; for(int i=32; i>=0; --i){ int temp = num/pow(2,i); if(temp == 1){ count++; num -= pow(2,i); } } cout<<count; return 0; } // 64 位输出请用 printf("%lld")