网址 https://www.acwing.com/solution/AcWing/content/2066/ios
题目描述
给定一个长度为n的数列,请你求出数列中每一个数的二进制表示中1的个数。算法
算法1
主要是使用位移和 按位与判断最后一位是不是1ide
int checkNum;
(checkNum &1)
checkNum >>= 1;spa
C++ 代码code
1 #include <iostream> 2 3 using namespace std; 4 5 int T; 6 const int N= 1e6+100; 7 int arr[N]; 8 9 void check(int checkNum) 10 { 11 int count = 0; 12 13 while(checkNum !=0){ 14 if(checkNum &1) 15 count++; 16 checkNum >>= 1; 17 } 18 19 cout << count << " "; 20 } 21 22 int main() 23 { 24 cin >> T; 25 26 int idx = 0; 27 while(T--){ 28 cin >> arr[idx++]; 29 } 30 31 for(int i =0;i < idx;i++) 32 check(arr[i]); 33 34 return 0; 35 } 36 37 38 做者:defddr 39 连接:https://www.acwing.com/solution/AcWing/content/2066/ 40 来源:AcWing 41 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。