题目描述
给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。
算法1
主要是使用位移和 按位与判断最后一位是否是1
int checkNum;
(checkNum &1)
checkNum >>= 1;
C++ 代码
#include <iostream>
using namespace std;
int T;
const int N= 1e6+100;
int arr[N];
void check(int checkNum)
{
int count = 0;
while(checkNum !=0){
if(checkNum &1)
count++;
checkNum >>= 1;
}
cout << count << " ";
}
int main()
{
cin >> T;
int idx = 0;
while(T--){
cin >> arr[idx++];
}
for(int i =0;i < idx;i++)
check(arr[i]);
return 0;
}