烟台大学新秀赛 C.谁没有关灯?【进制转换】

来源:互联网 发布:优化推广什么意思 编辑:程序博客网 时间:2024/05/17 01:49

Description

光明大厦的管理者发现员工下班后经常不关灯,造成极大的浪费。为了节约用电,大厦引进了一个叫做TLS的新仪器,该仪器能够准确显示每个楼层各个房间灯的开关状态。TLS的液晶显示屏宽度有限,所以TLS显示屏只用来显示十进制数,不显示二进制数。

例如:大厦的某一层有4个房间。第 1、4 房间亮灯,第 2、3 房间灯没有开。则用二进制表示为1001,但是在TLS液晶显示屏为 9。现在你能帮助大厦管理者设计一个程序,使得他看见TLS显示屏上的数字,就能够判定出哪些房间没有关灯吗?并且计算出亮灯的总数吗?

给定一个十进制整数N,求其对应二进制数中1的个数

Input

第一个整数表示有N组测试数据,其后N行是对应的测试数据,每行为一个整数,表示TLS显示的十进制数。

Output

N行,每行输出对应一个输入,表示实际亮灯的个数。

Sample Input
4
2
100
1000
66

Sample Output
1
3
6
2

HINT

Source

睿道杯烟台大学首届ACM程序设计新秀赛

#include<iostream>#include<cstring>using namespace std;int n; int m;int main(){    while (cin >> n)    {        while (n--)        {            cin >> m;            int flag = 0;            while (m)            {                flag += m % 2;                m /= 2;            }            cout << flag << endl;        }    }    return 0;}