二进制求 1 的个数

提交数: 12, 通过率: 75%, 平均分: 83

题目描述:

给定一个长度为 n 的数列,数列中的每个元素都是一个整数。对于数列中的每一个数,我们需要求出它的二进制表示中 1 的个数,并将这些个数输出。

输入格式:

输入的第一行是一个整数。

输出格式:

输出一行,包含 n个整数,第i 个整数表示数列中第 i 个数的二进制表示中 1 的个数。整数之间用空格分隔。

数据范围:

样例1解释

第一个数 4 的二进制表示为1000,其中 1 的个数为 1。

第二个数 8 的二进制表示为 1000,其中 1 的个数为 1。

第三个数 15 的二进制表示为 1111,其中 1 的个数为 4。

第四个数 16 的二进制表示为 10000,其中 1 的个数为 1。

第五个数 23 的二进制表示为 10111,其中 1 的个数为 4。

测试点 1−10 满足 1≤n≤1e3 ,0≤ai≤1e6。

测试点 11−20 满足 1≤n≤1e5 ,0≤ai ≤1e9 。

测试点 21−25 满足 1≤n≤1e6 ,0≤ai ≤1e9 。

样例输入:

5   
4 8 15 16 23

样例输出:

1 1 4 1 4
时间限制: 1000ms
空间限制: 256MB