801. 二进制中1的个数

https://www.acwing.com/problem/content/803/
签到题,利用按位与求数的二进制1的个数
也可以采用lowbit操作

#include<iostream>
using namespace std;
int n;
int a;
int main()
{
    cin >> n;
    for(int i=0;i<n;i++)
    {
        cin >> a;
        int k=0;
        while(a)k+=a&1,a>>=1;
        cout << k << ' ';
    }
    return 0;
}
#include<iostream>
using namespace std;
int n;
int num;
int lowbit(int x)
{
    return x & -x;
}

int main()
{
    cin >> n;
    for(int i=0;i<n;i++)
    {
        cin >> num;
        int res=0;
        while(num)num-=lowbit(num),res++;
        cout << res << ' ';
    }
    
    return 0;
}

 

posted @ 2023-03-09 21:27  风乐  阅读(15)  评论(0)    收藏  举报