[AcWing]801. 二进制中1的个数(C++实现)位运算模板题
1. 题目
2. 读题(需要重点注意的东西)
思路: lowbit函数,lowbit函数的作用就是返回二进制数中的最后一个1,如0101000返回1000,01010返回10…依次类推
3. 解法
---------------------------------------------------解法---------------------------------------------------
#include<iostream>
using namespace std;
int n;
int lowbit(int x){
return x & (-x);
}
int main(){
int n;
cin >> n;
while(n--){
int x;
cin >> x;
int res = 0;
while(x) x -= lowbit(x),res++;
cout << res << " " ;
}
}
4. 可能有帮助的前置习题
5. 所用到的数据结构与算法思想
6. 总结
lowbit位运算模板题,推荐完全背下来