天天看點

Openjudge-計算概論(A)-1的個數

描述:

給定一個十進制整數N,求其對應2進制數中1的個數輸入第一個整數表示有N組測試資料,其後N行是對應的測試資料,每行為一個整數。輸出N行,每行輸出對應一個輸入。樣例輸入

4
2
100
1000
66      

樣例輸出

1
3
6
2
思路:本題很簡單輾轉相除判斷如果是1,計數器++就得了,沒什麼好好講的。不過要特别注意:0要單獨考慮,否則會逾時的!!
代碼如下:
      
1 #include<stdio.h>
 2 int main()
 3 {
 4    int n,a,i,t;
 5    scanf("%d",&n);
 6    for(i=0;i<n;i++) 
 7     {
 8       t=0;//計數器
 9       scanf("%d",&a);
10       if(a==0) printf("0\n");//如果是0,輸出(這一步很重要)!!
11       else
12       {
13           while(a!=1)
14       {
15           if(a%2==1)
16           {
17           t++;                  
18           }
19           a=a/2;
20       }
21       t++;
22       printf("%d\n",t);
23          }       
24     }        
25     return 0;
26 }      

轉載于:https://www.cnblogs.com/geek-007/p/4294521.html