#include <stdio.h>
/*
各进制转换方法可参考图示:
https://jingyan.baidu.com/article/495ba84109665338b30ede98.html
十进制整数转其他进制:
如二进制,则除2取余,直至商为0得到最后一个余数;
对应二进制数为除2过程中所得余数倒着排列,如所得余数依次为011,则对应二进制数为110
其他进制之间的转换可借助十进制作为中转,先转为十进制,再转到对应进制,感觉应该会更方便(按权展开相加即可得到十进制数)
还可借助转换说明:%d或%i(十进制),%x或%X(十六进制),%o(八进制)等得到对应进制
*/
int findNumberOf1(int num)
{
int count=0;
// 如1: 1/2=0...1
while(num){
if(num%2==1){
count++;
// printf("%d\n",count);
}
num /= 2;
}
return count;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF){
int ret;
ret = findNumberOf1(n);
printf("%d\n",ret);
}
return 0;
}