思路:对于一个整数,每次与它减一的数做与运算,总会消除它二进制中最右边的1。因此直到它做与运算到0是的次数即为它二进制中1的个数
# include<iostream>
using namespace std;
int fun(int n)
{
int count = 0;
while (n)
{
count++;
n = n &(n - 1);
}
return count;
}
int main()
{
cout << fun(5) << endl;
return 0;
}