与二进制有关的几道面试题

简介:

这个是在博客园的博问里面看到的

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液体全部分配给警犬喝下。待两个小时后,查看所有死亡的警犬,将它们的编号组成二进制数,那么这个二进制数对应的十进制数即是液体的编号。


本文转自zdd博客园博客,原文链接:http://www.cnblogs.com/graphics/archive/2010/03/28/1699048.html,如需转载请自行联系原作者

相关文章
【面试题精讲】如何将二进制转为十六进制
【面试题精讲】如何将二进制转为十六进制
|
10月前
【一刷《剑指Offer》】面试题 10:二进制中 1 的个数
【一刷《剑指Offer》】面试题 10:二进制中 1 的个数
|
存储 人工智能 算法
2022 数据结构与算法《王道》学习笔记 (十)串 KMP算法 串的总结 课后习题笔记
2022 数据结构与算法《王道》学习笔记 (十)串 KMP算法 串的总结 课后习题笔记
|
算法 程序员 C语言
从C语言的使用转换到C++(下篇)——刷题、竞赛篇
我们上篇文章讲述了C++中的一些基础语法和常用函数(从C语言的使用转换到C++(上篇)——刷题、竞赛篇),我们本篇文章讲述C++STL的使用。
246 0
|
存储 C语言 C++
C语言指针笔试真题整理(8道)(下)
C语言指针笔试真题整理(8道)(下)
113 0
|
存储 C语言
C语言指针笔试真题整理(8道)(上)
C语言指针笔试真题整理(8道)
93 0
|
存储 编译器 C语言
C语言进阶——指针进阶试题讲解(万字长文详解)
C语言进阶——指针进阶试题讲解(万字长文详解
55096 7
C语言进阶——指针进阶试题讲解(万字长文详解)
|
算法 Linux C语言
几道数组相关的面试题
几道数组相关的面试题
119 0
几道数组相关的面试题
|
存储 数据处理
二进制是干什么的?如何才能学好二进制?底层原理是什么?
二进制是干什么的?如何才能学好二进制?底层原理是什么?
304 0
|
Web App开发 安全 前端开发
谈谈二进制安全学习路线
前言 之前有个年轻的朋友问我二进制安全怎么学习,有没有什么学习路线,还问我有没有什么培训机构可以推荐,今天我特地写一篇文章来解答这个问题; 笔者个人将二进制研究方向分为以下几个(可能不同的人有不同的看法): 1.windows平台 2.Linux平台 3.mac平台 3.android和ios平台 4.浏览器 5.模糊测试(Fuzzing)技术(注意:这种技术可以在上面所有平台使用,不过不同的平台使用的工具方法有差异)
608 3