思路

  1. 有多组输入使用while(scanf("%d",&val) != EOF)进行循环输入
  2. 获得输入值和2取余数,为1则将计数器++
  3. 同时更新val的值
  4. 当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;
}