其他分享
首页 > 其他分享> > A. Raising Bacteria(位运算)

A. Raising Bacteria(位运算)

作者:互联网

题意:最初,盒子是空的。你可以放一些细菌进去。每个细菌每晚会分裂成两个(2变4,4变8)。你需要在某一时刻,观察到X个细菌,请问至少投放多少个细菌。

题解:观察这道题,有二进制特征,应该想到位运算。

int main()

{

int n,ans=0;

cin >> n;

while (n)

{

if (n & 1)

{

ans++;//如果某一位上是1,就说明靠原始的那个细菌不能得到这个数目

}

n >>= 1;//每次向右移一位

}

cout << ans;

return 0;

}

标签:运算,int,题解,ans,细菌,Bacteria,Raising,题意
来源: https://www.cnblogs.com/Uiney117/p/14368736.html