#include <iostream>
using namespace std;
int n;
int lowbit(int x){// binary返回x最后一个1的位置,如1010→10
return x&(-x);
}
int main(){
scanf("%d",&n);
while(n--){
int res = 0;
int x;
scanf("%d",&x);
while(x) x-=lowbit(x),res++;//每次清除最末尾的1,清除多少次就有多少1
printf("%d ",res);
}
return 0;
}
acwing 801.二进制中1的个数
最新推荐文章于 2024-10-08 20:32:22 发布
本文介绍了一个C++程序,通过lowbit函数找到输入整数的最低位1并逐次移除,统计过程中1被清除的次数,显示原数中1的个数。
摘要由CSDN通过智能技术生成