一道微软面试题
来源:互联网 发布:block图片轮播js代码 编辑:程序博客网 时间:2024/05/17 03:34
题目:给你10只狗,有1000个药品,要么都没毒要么只有一瓶是有毒的,请你在一天内检测出来。已知有毒的药品会散发出毒气,狗闻了会中毒毙命,并且毒气发作的时间是19~23小时。
这道题,要用二进制来解决,3的二进制表示11,8的二进制表示1000.
下面是解决方案:
给10只狗编号1,2,3,4,5,6,7,8,9,10
用10个二进制位排列,因为2的10次方等于1024,大于1000,所以一定能找到。
用0表示狗没闻,1表示狗闻了。
开始排列:
0000000001 表示对于第1个药品,编号为1的闻了,其余没闻
0000000010 表示对于第2个药品,编号为2的闻了,其余没闻
0000000011 表示对于第3个药品,编号为1、2的闻了,其余没闻
0000000100 表示对于第4个药品,编号为3的闻了,其余没闻
0000000101 表示对于第5个药品,编号为1、3的闻了,其余没闻
... ...
... ...
1111100111 表示对于第999个药品,编号为1、2、3、6、7、8、9、10的闻了,其余没闻
1111101000 表示对于第1000个药品,编号为4、6、7、8、9、10的闻了,其余没闻
最后根据哪些编号的狗死了,就可以知道第几个药品有毒了。
比如说只有编号为1和编号为3的狗死翘翘了,那么肯定是第5个药品有毒了。
如果10只狗狗都平安无事,那这堆药品都没有毒
- 一道微软面试题
- 一道微软面试题
- 微软一道面试题
- 一道微软面试题
- 一道微软面试题
- 一道微软面试题
- 微软一道面试题
- 微软的一道面试题
- 一道微软逻辑面试题
- 微软的一道面试题
- 微软的一道面试题
- 一道微软的面试题
- 微软的一道面试题
- 请教高手 一道据说是微软面试题
- 关于一道微软面试题的思考
- 关于一道微软面试题的解答
- 微软的一道面试题的解法
- 一道微软面试题的解答
- 乔布斯在斯坦福大学的演讲
- SQL Server DATEADD() 函数
- MultiByteToWideChar
- UVa 488 Triangle Wave
- SQL*PLUS使用技巧
- 一道微软面试题
- sites
- 分割网址上附带的参数
- 将Django部署到nginx上
- 调试查看vector
- QGraphicsView 中实现拖拽
- C/C++程序编译的过程
- QEMU源码分析系列(三)
- JAVA匿名内部类实现工厂化生产