Newguy


私信TA

用户名:772007765

访问量:88800

签 名:

已秃人士

等  级
排  名 29
经  验 15363
参赛次数 3
文章发表 92
年  龄 0
在职情况 在职
学  校
专  业

  自我简介:

描述

ACM俱乐部里员工的都有一个工号,这个工号的二进制表达中1的个数越多,这个员工的级别就越高。
输入一个工号,求这个工号的二进制表达中1的个数。
例如输入10,由于其二进制表示为1010,有两个1,因此输出2。

输入

每组测试数据输入一行,每行输入一个整数(绝对值<=1000000)。

输出

每组测试数据输出一行,这个工号的二进制表达中1的个数。

样例输入1

10
0
-32768

样例输出1

2
0
17

#include <stdio.h> 
int main()  
{  
    int n;  
    while(scanf("%d",&n)!=EOF)  
	{
		unsigned int count=0,flag=1;
		while(flag&&flag<=n)  
		{  
			if(n&flag)  
				count++;  
			flag<<=1;  
		}
		printf("%d\n",count);  
	}
    return 0;  
}


 

0.0分

1 人评分

  评论区

  • «
  • »