#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int N=1e5+10;
int a[N];
int b[N];
int lowbit(int x)
{
return x&(-x);
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int n;
cin>>n;
while(n--)
{
int x;
cin>>x;
int cnt=0;
while(x)
{
x-=lowbit(x);//减去最后一个1以及后面的数(二进制)
cnt++;
}
cout<<cnt<<" ";
}
}
二进制位运算(模板题)
于 2024-06-30 10:47:50 首次发布