计算概论(A)/基础编程练习2(8题)/8:1的个数

 1 #include<stdio.h>
 2 int main() {
 3     int N,temp,count=0;
 4 
 5     // 存储测试数据的二进制形式中1的个数
 6     int bian[N];
 7 
 8     // 输入十进制整数N 表示N行测试数据
 9     scanf("%d",&N);
10 
11     // 循环读入
12     while(scanf("%d",&temp)!=EOF) {
13         bian[count]=0;
14 
15         // 逐一计算二进制形式中1的个数 参考百度经验:http://jingyan.baidu.com/article/fc07f9892e245612ffe51909.html
16         while(temp!=0) {
17             if(temp%2!=0) {
18                 // 不能整除2的记录1
19                 bian[count]++;
20             }
21             // 除以2更新下一个被除数 当被除数变为0时 说明结束
22             temp=temp/2;
23         }
24         count++;
25     }
26     
27     // 输出N行测试数据结果 
28     for(int i=0; i<N; i++) {
29         printf("%d\n",bian[i]);
30     }
31     return 0;
32 }
33 /*
34 pkuic_2709.c
35 计算概论(A)/基础编程练习2(8题)/8:1的个数
36 http://pkuic.openjudge.cn/base2/8
37 8:1的个数
38 查看 提交 统计 提问
39 总时间限制: 1000ms 内存限制: 65536kB
40 描述
41     给定一个十进制整数N,求其对应2进制数中1的个数
42 输入
43     第一个整数表示有N组测试数据,其后N行是对应的测试数据,每行为一个整数。
44 输出
45     N行,每行输出对应一个输入。
46 样例输入
47     4
48     2
49     100
50     1000
51     66
52 样例输出
53     1
54     3
55     6
56     2
57 */

 

posted @ 2017-03-04 22:18  valuestack  阅读(235)  评论(0)    收藏  举报