# 【IT笔试面试题整理】小狗试药

- URL: https://www.yidoo.xyz/dog-reagent
- 作者: 核动力蜗牛
- 发布时间: 2010-09-18
- 更新时间: 2010-09-18
- 分类: 面试题整理
- 标签: 面试题

【题目描述】1000瓶药水，其中至多有1瓶剧毒，现在给你10只小狗在24小时内通过小狗试药的方式找出哪瓶药有毒或者全部无毒（小狗服完药20小时后才能判断是否中毒）

【题目来源】08腾讯

【题目分析】
方法一：
 将药水进行二进制编号，比如第一瓶是0000000001,第十瓶是0000001010......
 将小狗1~10的编号，一号小狗对应二进制数的第一位，二号小狗对应第二位，以此类推.
 比如：第一瓶药的第十位是1，则让第十只小狗喝下；第十瓶药的第八位和第十位是1，则让编号8,10的小狗喝下，依此类推
 例如：第1,2,3条狗狗死了，那么组合成的二进制数为1110000000,转换成十进制就是896瓶药有毒


方法二:
 将药分成10份，每份100瓶，在第零个小时将每一份药给一个小狗喝（也就是每条狗试100瓶）
 过一个小时后，将第一份药平均分十份（也就是每份十瓶），每份让小狗喝下，第二份、第三份...亦如此类推
 在过一个小时后，将第一份药的第一份药分十份（也就是每份一瓶），每份让小狗喝下，第二份、第三份...亦如此类推............
 过二十个小时后，比如第二条狗死了，那有毒的药就在第二个100瓶里面
 过二十一个小时后，比如第四条狗死了，那有毒的药就在第二个100瓶里的第四个10瓶里
 过二十二个小时后，比如第八条狗死了，那有毒的药就在第二个100瓶里的第四个10瓶里的第8瓶



转自：[http://topic.csdn.net/u/20100919/10/b6561d69-bf8b-4e1a-a2a9-743f4edd52ff.html](http://topic.csdn.net/u/20100919/10/b6561d69-bf8b-4e1a-a2a9-743f4edd52ff.html)
