这是《编程之美》中的一道题。
可以用移位或者打表做。
这边是用它的思想"-1"与。
#include<iostream>
using namespace std;
int main()
{
int value,num;
while(cin>>value)
{
num=0;
while(value)
{
value=(value-1)&value;
num++;
}
cout<<num<<endl;
}
return 0;}
本文介绍了一种使用位操作的方法来计算一个整数中二进制表示的1的个数。通过不断将数值与其减一后的值进行按位与运算,可以有效地去除最低位上的1,直至数值变为0。这种方法适用于编程竞赛和技术面试。
这是《编程之美》中的一道题。
可以用移位或者打表做。
这边是用它的思想"-1"与。
#include<iostream>
using namespace std;
int main()
{
int value,num;
while(cin>>value)
{
num=0;
while(value)
{
value=(value-1)&value;
num++;
}
cout<<num<<endl;
}
return 0;}

被折叠的 条评论
为什么被折叠?