网络--面试题目整理(一)

来源:互联网 发布:狗和狼的区别知乎 编辑:程序博客网 时间:2024/05/21 17:12

经常在网上看到一些面试题目,为了不让自己忘记,特地将看到的有意思的题目整理下来以备后续只用。

对于软件工程师来说面试语言的题目都到大同小异,找本书看看也就差不过了,关键是一些实际应用中的题目比如数据结构 算法的题目会多样化,这个只能做好扎实的基本功,看更多的题目就是给自己一个思路,一种方法,融会贯通,另外很多公司还会出一些智力题,来考察面试者解决问题的思路。不多说了,开始整理题目啦

1、农民给地主打工,总共打工时间是7天,每天的报酬是1g的金条,地主手中有一根7g的金条,用来付给农民,然而,农民要求工资日结,而地主只能将金条切两刀。请问,如何切割,可以保证农民每天都可以拿到工资

这个可谓是一个经典题目了,解决方案:

切成1g, 2g, 4g的形式,这样子两刀就解决问题了


2、绳子定时问题,一根粗细不均匀(也就是燃烧速度不均匀)的绳子,从一端点着后全部烧完要一个小时,现在给你两根这样的绳子,用他们来定时15mins


解决方案:

第一根绳子两头烧,找到中点,根据第一根绳子的结果,对应找到第二根绳子的中点位置,然后切割,剩下的一半两头烧


3、 有1000个透明(但不知道里面装的是什么)瓶子,其中有一瓶装的是毒药。现给你一批老鼠,老鼠吃了7天才会有效果。你最少用多少只老鼠就能测出那一瓶是毒药


解决方案:

1000化成二进制是1111101000 10位
把1000个瓶子编号和10只老鼠编号
把1000个数都化成二进制的
1是1 就把1号瓶子的水给1号位老鼠
2是10 就把2号瓶子的水给2号位老鼠
……
10是1010 就把10号瓶子的水给4号和2号老鼠
……
以此类推……
最后把对应位置上的老鼠死的做1没死的做0变成二进制数化成十进制数,就是该瓶号是毒药,所以这种方法是10只老鼠