方法貌似挺多,这里的就是每次把靠右的那一位1统计出来,并置为0,循环搞定。
#include<stdio.h>
int count(int num)
{
int sum=0;
while(num)
{
num&=(num-1);
sum++;
}
return sum;
}
int main()
{
int x;
while(scanf("%d",&x))
{
printf("%d\n",count(x));
}
return 1;
}
方法貌似挺多,这里的就是每次把靠右的那一位1统计出来,并置为0,循环搞定。
#include<stdio.h>
int count(int num)
{
int sum=0;
while(num)
{
num&=(num-1);
sum++;
}
return sum;
}
int main()
{
int x;
while(scanf("%d",&x))
{
printf("%d\n",count(x));
}
return 1;
}