关于二进制的问题

今天看了一个视频,里面有这么一个问题,100瓶水中有一瓶是毒药,老鼠吃了毒药后一周才会死,试问用多少只老鼠在一周中才可以试出毒药?
视频是这样讲解这个问题的。
给每一个瓶子编号如
第一个瓶子:0000001
第二个瓶子:0000010
第三个瓶子:0000011
·······
第一百个瓶子:1100100
然后呢

分成七个组,七只老鼠,一号至7号都喂含有那一列含有数字1 的药水。
结果就出来了。
假如说一号和五号老鼠死亡,那么这瓶药水的编号为1000100也就是第68瓶药水是毒药。
视频的最后提出这么一个问题:有一百个囚犯排成一列,报数奇数就枪毙,偶数留下,
再次报数奇数枪毙偶数留下直到最后一人,那么如果想活着,应该站那个位置

开始想用列举的方法,后来想这样就没意思了。
一会,我想到了解题思路。

奇数的话二进制最后一个数字为1,偶数为0,因为最后一位是1x2^0或者0x2^0。其他较高位都是偶数,
这个题的解法是最高位为1其他为都是0.也就是1000000=64.因为只留一个数嘛。

猜你喜欢

转载自www.cnblogs.com/gudaonihao/p/11106331.html