1的个数

描述

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

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

样例输出

1
2
3

测试代码1

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int n, m, res;
 6     scanf("%d", &n);
 7     while (n--)
 8     {
 9         scanf("%d", &m);
10         res = 0;
11         while (m)
12         {
13             if (m & 1)
14             {
15                 res++;
16             }
17             m >>= 1;
18         }
19         printf("%d\n", res);
20     }
21     return 0;
22 }

 测试代码2

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int n, res = 0;
 6     while (scanf("%d", &n))
 7     {
 8         res = 0;
 9         while (n)
10         {
11             n &= (n - 1);
12             res++;
13         }
14         printf("%d\n", res);
15     }
16     return 0;
17 }

 

posted @ 2016-05-09 20:58  新生代黑马  阅读(131)  评论(0编辑  收藏  举报