iOS开发_小迷糊 的文章《IOS 中级开发,鹅厂面试全记录》里面,看到有个很有意思的算法题
https://www.jianshu.com/p/beac152832fb
原题如下
有15个瓶子,其中最多有一瓶有毒,现在有四只老鼠,喝了有毒的水之后,第二天就会死。如何在第二天就可以判断出哪个瓶子有毒
思路如下:
15个瓶子--15个输入
4只老鼠--二进制最多16种输出
输入转成2进制按次序 喂给老鼠
再从死掉的输出结果 得出哪瓶
----------具体看下表
0 0 0 1
0 0 2 0
0 0 3 3
0 4 0 0
0 5 0 5
0 6 6 0
0 7 7 7
8 0 0 0
9 0 0 9
10 0 10 0
11 0 11 11
12 12 0 0
13 13 0 13
14 14 14 0
15 15 15 15
-------
1 2 3 4(老鼠编号)
第二天 老鼠死掉编号结果就是对应的有毒的瓶子号码
网友评论