网站建设时间如何查询,哪里有免费的网站网址,专业做电脑系统下载网站,网站收录需要多久给定一个长度为 n 的数列#xff0c;请你求出数列中每个数的二进制表示中 1 的个数。
输入格式 第一行包含整数 n 。
第二行包含 n 个整数#xff0c;表示整个数列。
输出格式 共一行#xff0c;包含 n 个整数#xff0c;其中的第 i 个数表示数列中的第 i 个数的二进制表…给定一个长度为 n 的数列请你求出数列中每个数的二进制表示中 1 的个数。
输入格式 第一行包含整数 n 。
第二行包含 n 个整数表示整个数列。
输出格式 共一行包含 n 个整数其中的第 i 个数表示数列中的第 i 个数的二进制表示中 1 的个数。
数据范围 1≤n≤100000 , 0≤数列中元素的值≤109 输入样例 5 1 2 3 4 5 输出样例 1 1 2 1 2
1求n的二进制数表示中第k位是几 n k 1 2lowbit操作返回x的最后一位1返回是一个二进制数 x -x 计算过程
#include iostreamusing namespace std;int n;int main ()
{scanf(%d, n);while(n -- ){int x;scanf(%d, x);int res 0;while(x) {if(x 1) res ; // 取x最后一位x x 1; // x 右移一位// lowbit写法// x - (x -x); // (x -x) 就是lowbit操作每次减去最后一个1然后res减了多少次就有多少个1比上面那种稍微快一点//res ;}printf(%d , res);}return 0;
}