#define _CRT_SECURE_NO_WARNINGS 1 
#include<stdio.h>


//题(1):统计二进制中 1的个数:
//方法(1):最好的一种方法
int main()
{
int n,count=0;
scanf("%d", &n); //电脑中存放的是补码

while (n)
{
n = n & (n - 1);
count++;
}
printf("二进制1的个数:%d\n", count);
return 0;
}

//方法(2):
//int main()
//{
// int n, count = 0;
// scanf("%d", &n);
//
// int i;
// for (i = 0; i < 32; i++)
// {
// if (((n >> i) & 1) == 1)
// {
// count++;
// }
// }
// printf("二进制1的个数:%d\n", count);
// return 0;
//}

//方法(3):这种方法,求的数必须是无符号数
//int main()
//{
// unsigned int n;
// int count = 0;
// scanf("%d", &n);
//
// while (n)
// {
// if ((n % 2) == 1)
// {
// count++;
// }
// n = n / 2;
// }
// printf("二进制1的个数:%d\n", count);
// return 0;
//}