标签:位运算 运算 cin ++ while out 就是 end cout
k=k&(k-1)可以消除k的二进制数的最后一个1.连续进行这个操作,每次消除一个1,直到全部消除为止。操作次数就是1的个数。
int num=0;
cin>>k;
while(k>0)
{
k=k&(k-1);
num++;
}
cout<<num<<endl;
标签:位运算 运算 cin ++ while out 就是 end cout
原文地址:https://www.cnblogs.com/huashanqingzhu/p/13424515.html