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 
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(面试)