与二进制有关的几道面试题
2010-03-28 21:36
239 查看
这个是在博客园的博问里面看到的
1、现有1000个苹果,10个盒子,现在要你将1000个苹果装入10个盒子中,使得用户无论购买多少个苹果(1-1000),都能由若干个盒子拼装而成(卖的时候是整个盒子卖,不能拆盒子的包装)
解法:考虑1, 2, 4, 8这四个数,由这四个数可以组成1-15之间任意一个数,也即1,2, 4 ... 2n 可以组成1-2(n+1)-1之间所有的数。所以这十个盒子分别放入
1, 2, 4, 8, 16, 32, 64, 128, 256, 489个苹果,即可组成1-1000内所有的数。
2. 有1000瓶液体,无色无味,外表完全一样,其中一瓶是毒药,有10条警犬,警犬喝过毒药后两小时后死亡。问,如何在两个小时后确定哪瓶是毒药。
也是二进制方法,1000瓶毒药编号0-999,10条警犬编号0-9,现在看每瓶液体编号的二进制表示,假设第i(从0开始)位是1,那么让第i条狗喝这瓶液体。比如第0瓶液体,没有警犬喝,第5瓶液体分别由第0条和第2条警犬喝,将1000液体全部分配给警犬喝下。待两个小时后,查看所有死亡的警犬,将它们的编号组成二进制数,那么这个二进制数对应的十进制数即是液体的编号。
1、现有1000个苹果,10个盒子,现在要你将1000个苹果装入10个盒子中,使得用户无论购买多少个苹果(1-1000),都能由若干个盒子拼装而成(卖的时候是整个盒子卖,不能拆盒子的包装)
解法:考虑1, 2, 4, 8这四个数,由这四个数可以组成1-15之间任意一个数,也即1,2, 4 ... 2n 可以组成1-2(n+1)-1之间所有的数。所以这十个盒子分别放入
1, 2, 4, 8, 16, 32, 64, 128, 256, 489个苹果,即可组成1-1000内所有的数。
2. 有1000瓶液体,无色无味,外表完全一样,其中一瓶是毒药,有10条警犬,警犬喝过毒药后两小时后死亡。问,如何在两个小时后确定哪瓶是毒药。
也是二进制方法,1000瓶毒药编号0-999,10条警犬编号0-9,现在看每瓶液体编号的二进制表示,假设第i(从0开始)位是1,那么让第i条狗喝这瓶液体。比如第0瓶液体,没有警犬喝,第5瓶液体分别由第0条和第2条警犬喝,将1000液体全部分配给警犬喝下。待两个小时后,查看所有死亡的警犬,将它们的编号组成二进制数,那么这个二进制数对应的十进制数即是液体的编号。
相关文章推荐
- 与二进制有关的几道面试题
- 剑指offer面试题10:二进制中1的个数(与位运算有关)
- 几道经典的有关整数二进制的编程题(如:一个数二进制位的偶数位和奇数位交换)
- 有关Java的几道面试题
- 几道 SQL 语句面试题
- 一道跟静态成员有关的面试题
- 关于数组的几道面试题
- 总结:和链表有关面试题
- 几道面试题的求解
- 几道面试题
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 与全局变量构造析构顺序有关的一道面试题(C++)
- 几道面试题解析
- 有关3月26日腾讯模拟面试题
- 杭电 ACM 几道有关string的题目
- 大数据学习--java基础--二进制有关
- 几道算法相关面试题
- 几道大数据面试题
- 几道坑人的PHP面试题 试试看看你会不会也中招
- 剑指Offer----面试题10:二进制中1的个数