二进制中1的个数
作者:
Return.
,
2024-04-12 00:39:11
,
所有人可见
,
阅读 22
求一个数二进制中1的个数
暴力做法(与运算)
//0&0=0;0&1=0;1&0=0;1&1=1
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int k;
int main()
{
int n;cin>>n;
while (n -- )
{
int x;cin>>x;
int k=0;
while(x)
{
k+=x&1;
x>>=1;
}
cout<<k<<" ";
}
}
lowbit
#include <iostream>
#include <cstring>
#include <algorithm>
#define int long long
using namespace std;
int lowbit(int x)
{
return x&-x;
}
signed main()
{
int n;cin>>n;
while(n--)
{
int x;cin>>x;
int s=0;
for(int i=x;i>0;i-=lowbit(i)) s++;
cout<<s<<" ";
}
return 0;
}