1000瓶酒其中1瓶有毒,10只老鼠找出毒酒

1: 折半查找的方式
      容易理解 500瓶每瓶1滴放在一起看老鼠喝了死不死
      依次类推 250->125->63->32->16->8->4->2->1
2: 转换为二进制形式
      2的10次方 = 1024 > 1000 即1000 都可以表示成10位二进制的形式
      则取10个碗,对应10位
      
      1 2 3 4 5 6 7 8 9 10
      0 0 0 0 0 0 0 0 0 0
      对应第一瓶酒,则在第10个碗中加一滴(因为1的二进制为0000000001)
      对应第1000瓶, 则在1,2,3,4,5,7碗中加一滴(1111101000)

      然后让老鼠喝酒,取死老鼠的二进制(死为1)

      若第一瓶有毒 其它无毒,则只有第10个老鼠死
      若第15瓶有毒           78910碗对应的老鼠都死

      依次类推
--------------------- 
作者:wshelly 
来源:CSDN 
原文:https://blog.csdn.net/ppppppppp2009/article/details/8072307 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值