本题可采用快速幂的思想,一直右移,检查每一位是否为1
#include<iostream>
using namespace std;
const int N=1e6+10;
int n,cnt;
int a[N];
int main(){
cin>>n;
for(int i=0;i<n;i++){
cnt=0;
cin>>a[i];
while(a[i]){
if(a[i]&1)cnt++;
a[i]>>=1;
}
cout<<cnt<<" ";
}
return 0;
}