1的个数

来源:互联网 发布:织梦cms手机版 编辑:程序博客网 时间:2024/06/06 23:59

问题描述
给定一个十进制整数N,求其对应2进制数中1的个数。
输入
第1行一个整数表示有N组测试数据,第2行是对应的测试数据。
输出
N行,每行输出对应一个测试数据
输入示例

42 100 1000 66

输出示例

1362

源码

#include <iostream>using namespace std;int main(){    int n;    for (cin >> n; n > 0; n--)    {        int x, ans = 0;        cin >> x;        while(x > 0)        {            ans += x%2;            x /= 2;        }        cout << ans << endl;    }    return 0;}//这道题的解法就是反复地除以2,看最低位是1还是0.有些知道位运算的同学喜欢用位运算,但其实没必要,因为编译器优化之后的程序其实效率是一样的。
0 0
原创粉丝点击