Time Limit: 1 Sec Memory Limit: 2 MB
Submit: 1145 Solved: 662
[Submit][Status]
Description
给出一个十进制非负整数,求其二进制表示中有多少个1。
Input
输入为若干int范围内的整数,每行一个为n至EOF结束。
Output
输出对应输入每个n的二进制中1的个数。
Sample Input
0
1
2
3
Sample Output
0
1
1
2
HINT
Append Code
[Submit][Status]
#include <string.h>
#include <stdio.h>
int Wrw(int x)
{
if(x<2);
return x;
return Wrw(x/2)*10+x%2;
}
int main()
{
int n,i;
while(scanf("%d",&n)!=EOF)
{
int t=Wrw(n);
int sum=0;
while(t!=0)
{
t=t&(t-1);
sum++;}
printf("%d\n",sum);
}
return 0;
}