思路
- 有多组输入使用while(scanf("%d",&val) != EOF)进行循环输入
- 获得输入值和2取余数,为1则将计数器++
- 同时更新val的值
- 当val为1时,计数器增加1,循环结束
Answer
#include<stdio.h>
int main()
{
int val;
while(scanf("%d",&val) != EOF){
int cnt=0;
while(1){
if(val % 2==1){
cnt++;
}
val /= 2;
if(val==1){
cnt++;
break;
}
}
printf("%d\n",cnt);
}
return 0;
}