一般我自己第一反应的方法:
#include <stdio.h>
void Number(int a)
{
int k = 0;
while(a)
{
if(a % 2 == 1)
{
k++;
}
a = a / 2;
}
printf("%d\n",k);
}
int main()
{
int a;
scanf("%d",&a);
Number(a);
return 0;
}
还可以用位操作:
(1)
int Number(int n)
{
int count = 0;
while(n)
{
if(n & 1)
{
count ++;
}
n = n >> 1;
}
return count;
}
(2)
int Number(int n)
{
int count = 0;
int x = 1;
while(x)
{
if(n & x)
{
count ++;
}
x = x << 1;
}
return count;
}