思路:把输入正整数不断右移位与1按位与,固定32次,每次如果结果为1,就计数加1.32次后,输出计数值。
#include <stdio.h>
int main(void)
{
int num;
int i;
int count = 0;
scanf("%d\n", &num);
for(i=0; i<32; i++)
{
if( ((num>>i) & 1) == 1 )
{
count ++;
}
}
printf("%d\n",count);
return 0;
}
京公网安备 11010502036488号