100

1的个数

描述

小南刚学了二进制,他想知道一个数的二进制表示中有多少个1,你能帮他写一个程序来完成这个任务吗? 

输入
第一行输入一个整数N,表示测试数据的组数(1<N<1000)
每组测试数据只有一行,是一个整数M(0=<M<=10000)
输出
每组测试输出占一行,输出M的二进制表示中1的个数
样例输入
3
4
6
7
样例输出
1
2
3

 

 1 //NYLGOJ
 2 //100
 3 #include <stdio.h>
 4 int main(void)
 5 {
 6     int N;
 7     scanf("%d",&N);//输入测试数据的组数 
 8     while(N--)
 9     {
10         int M,count=0;
11         scanf("%d",&M);//输入待检测数据 
12         while(M!=0)
13         {
14             if(M%2==1)//对2取余,如果二进制数含有1 
15                 count++;
16             M/=2;//除2    
17         }
18         printf("%d\n",count);    
19     }
20     return 0;
21 }

//十进制整数X通过每次整除以2(直至X/2=0)对应余数从高到低排列即为对应的二进制数

posted on 2015-10-09 02:09  不丼独乐  阅读(122)  评论(0)    收藏  举报

导航