题目目录:
Q1:8个小球称重,最少称几次?
8个小球找其中一个较重的,其余小球质量相等,最少称几次?
分析:
一次肯定是不行的,这个不用怀疑。那么两次怎么称?既然是两次,那肯定第一次没取完,并且取得数目是双数,那么只有6和4(取2和去6是一样的),但取4肯定得3次(第一次4和4,然后找一个较重的,2和2,再称一次就行了,总共3次),所以取6个,33称,剩余2个,11称。
33称时,如果一样重,那么再称一次11,就可以了,共两次;如果不一样,从中取出两个,称一下,如果两个一样重,那么剩余的那个就是了,共两次;如果不一样,那么重的那个就是,还是两次。
答案:两次
- 先取其中六个球,天平两端各三个
- 若天平平衡,则剩下的两个里拿出来对比得出(两次)
- 若天平不平衡,拿出较重的三个里的两个(1.不平衡则找出、2.平衡则剩下一个较重)
Q2:分金条
你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段 ,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给工人付费?
答案:
剪两次,分成1/7,2/7,4/7。
第一天把1/7给工人,余下2/7和4/7;第二天将昨天发的1/7要回来,把2/7给他,剩余1/7和4/7;第三天将1/7给他,余下4/7;第四天将1/7和2/7要回来,给他4/7,余下1/7和2/7;第五天给他1/7,余下2/7;第六天将1/7要回来,给他2/7,余下1/7;第7天给他1/7。
Q3:切蛋糕
把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份
答案
把切成的8份蛋糕先拿出7份分给7人,剩下的1份连蛋糕盒一起分
给第8个人。
Q4 烧绳子测时间
烧一根不均匀的绳要用一个小时,如何用它来判断半个小时 ?(有若干根绳子)?怎么判断45min?怎么判断一个小时十五分钟呢?
答案:
半个小时:从两头一起烧。
45min:同时点燃两根绳子,A绳子从头烧,B绳子从两端烧,B烧完的时候,用时30min,此时A剩余半个小时的量,那么此时将A的另一头也点燃。即可得到15min。
1h15min,就是60+15呗。
Q5 坐电梯取钻石
一楼到十楼的每层电梯门口都放着一颗钻石,钻石大小不一。你乘坐电梯从一楼到十楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能拿到最大的一颗?
解答思路
开放性试题,没有固定答案。以下答案均可:
-
37%法则:先放弃前37%(1/e)的钻石,此后选择比前37%都大的第一颗钻石。注意这个策略只是以最大的概率获得最大的那颗钻石,并不考虑第二大的钻石和最小钻石的区别。
-
前5层不拿,仅观察,然后再判断后面钻石的大小,如果遇到比前5层大的钻石就拿,否则就拿最后一颗钻石。
-
先拿一楼钻石,然后再一层一层比较,如果大了,就换成现在手中的钻石(这个解释存在异议,题目中是总共只能拿一次?还是每层只能拿一次?,如果是前者,这个解释是错误的)
-
考虑到哲学问题(和拾麦穗很相似)。不管最大的钻石在几楼,直接拿一楼的钻石
Q6 持灯过桥
小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒, 小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会熄灭。问:小明一家如何过桥?
答案
设小明是A,小明的弟弟是B,小明的爸爸是C,小明的妈妈是D,小明的爷爷是E,----是桥.
步骤 已用秒数 位置状况
1.小明和小明的弟弟先过去. 0+3=3秒 AB----CDE
2.小明的弟弟回来. 3+3=6秒 A----BCDE
3.小明的妈妈和爷爷过去. 6+12=18秒 ADE----BC
4.小明回来. 18+1=19秒 DE----ABC
5.小明和他的爸爸过去. 19+6=25秒 ACDE----B
6.小明回来. 25+1=26秒 CDE----AB
7.小明和他的弟弟过去. 26+3=29秒 ABCDE----全部通过
答:.小明和小明的弟弟先过去----.小明的弟弟回来----小明的妈妈和爷爷过去-------小明回来—小明和他的爸爸过去------小明回来--------小明和他的弟弟过去.
通过分析可知,1.小明和小明的弟弟先过去. 0+3=3秒2.小明的弟弟回来. 3+3=6秒 3.小明的妈妈和爷爷过去. 6+12=18秒 4.小明回来. 18+1=19秒 5.小明和他的爸爸过去. 19+6=25秒6.小明回 来 25+1=26秒7.小明和他的弟弟过去.26+3=29秒
Q7:有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐分成50、90克各一份?
解法一
第一次:2g砝码+7g砝码—>称9g盐
第二次:9g盐+7g砝码—>称16g盐
第三次:16g盐 + 2g砝码 + 7g砝码 —>称25g盐
将3次称的盐放在一起为50g,剩下的就是90g
解法二
第一次:将140g盐平分在天平两边,一边各70g盐
第二次:将其中一份70g盐平分在天平两边,一边各35g盐
第三次:取其中一份35g盐,配出20g和15g盐,20+2<------>15+7
把15g盐和第二次另一份35g盐合到一起,凑成50g盐;把20g盐和第一次另一份70g盐合到一起,凑成90g盐。
解法三
第一次:将140g盐分为71g盐和69g盐加上2g砝码,71<—>69+2
第二次:利用2g、7g砝码配出5g盐,2+5<—>7
第三次:利用2g、7g砝码、5g盐配出14g盐,2+5+7<—>14
14+5+71=90,剩下的就是50g盐
Q8 路程问题
有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以第 小时20公里的速度从纽约开往洛杉矶。如果有一只鸟,以外30公里每小时的速度和两辆火车现时启动,从洛杉矶出发,碰到另辆车后返回,依次在两辆火车来回的飞行,直道两面辆火车相遇,请问,这只小鸟飞行了多长距离?
答案
宗旨就是用时一样。
设洛杉矶到纽约的铁路长为A公里。则两辆火车到相遇用了A/(15+20)小时,也就是小鸟飞行的时间。所以小鸟飞行的距离就是速度×时间=30×A/35=6/7的洛杉矶到纽约的铁路长。
Q9. 想象你在镜子前,请问,为什么镜子中的影像可以颠倒左右,却不能颠倒上下?
因为人的两眼在水平方向上对称
Q10. 判断哪个罐子的药被污染
你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的重量+1。只称量一次,如何判断哪个罐子的药被污染了?
答案
潜台词是整个药罐的丸子都被污染了。
把罐子编上号,1,2,3,4,1号的罐子里拿一粒药,2号罐子里拿两粒药,以此类推.然后全部放到秤上面去称,假设每一粒药1克,那么应该是1+2+3+4=10克.如果称出来是11克,那么是编号1的罐子里的药被污染;如果称出来是12克,那么是编号2的罐子里的药被污染了.以此类推,就能求出来了。
Q11. 称水
3ml 5ml 杯子各一个,两个杯子没有刻度,只知道最大容量,并且不能借助其它容器,拼出 4ml 的容量。
解法一
1.将3ml杯子装满水倒入5ml杯子,此时5ml杯中有3ml水
2.再重复步骤一,此时3ml杯中剩1ml水,5ml杯中有5ml水
3.将5ml杯子中的水倒出去,此时5ml杯中没有水
4.再将3ml杯中的1ml水倒入5ml杯中,此时5ml杯中有1ml水
5.把3ml杯子倒满,倒入5ml杯中,此时5ml杯中有1ml+3ml=4ml水
解法二
1.将5ml杯子装满水倒入3ml杯子,此时5ml杯中有2ml水
2.把3ml杯中水倒掉,5ml杯中的2ml水倒入3ml杯中,此时5ml杯中没有水
3.再次将5ml杯子装满水倒入3ml杯子,由于3ml杯中只能再倒入1ml水,所以给3ml杯子倒满水后停止,5ml杯中还剩5ml-1ml=4ml水
Q12. 抓果冻
你有一桶果冻,其中有黄色,绿色,红色三种,闭上眼睛,抓取若干个果冻。抓取多少个就可以确定你肯定有两个同一颜色的果冻?
答案:4个。
数量>颜色种类。颜色必重复
Q13. 钟表表针重叠问题
假设时钟到了12点。注意时针和分针重叠在一起。在一天之中,时针和分
针共重叠多少次?你知道它们重叠时的具体时间吗?
答案:22次
解法一:
一天24个小时,0时~23时每个小时都会重合。
但是,23时的重合在23时60分,即0时,因此少一次;11时的重合是在11时60分,12时一周内没有重合,又少了一次。
因此24-2=22次。
解法二
实际上这是一个圆周内的追击问题,分针比时针快,分针不停的去追时针。因为一天内实际上是钟表走了两圈,即AM与PM,所以只算AM,再将之乘上2即可
每个小时是30度,即1:00时针在30度,2:00时针在30*2=60度,以此类推。分针每分钟走6度,时针每分钟走0.5度,则将12个小时分成12场比赛。
第一场比赛,都在12:00,所以不用追击。
第二场,1:00,两者相距30度,故(30)/(6-0.5)
第三场,2:00,两者相距60度,故(30*2)/(6-0.5)
后边,以此类推。
int hour = 30;
for(int count=0;count<11;count++)
{
//此处加上0.5是为了四舍五入
int min = ((count*hour)/(6-0.5))+0.5;
printf("%d:%d\n",count,min);
}
Q14. 1000!有多少位?
2568位
设一个数为X,用科学计数法表示为X=a*10^b,其中1<a<10,b为整数,则X有1+b位数
例如:1995=1.995* 10 ^ 3,有1+3=4位数 56789=5.6789*10^ 4,有1+4=5位数。其中3,4是通过取对数的整数部分获得,lg(1995)的整数部分是3,lg(56789)的整数部分是4
求1000!有几位,此问题转化成求lg(1000!)+1的值。
lg(1000!)=lg(1000*999…*1)=lg(1000)+lg(999)+…+lg(1)
其中lg(1000)+lg(999)+…+lg(1)可通过如下代码计算出来
#include <stdio.h>
#include <math.h>
int main()
{
double sum = 0.0;
for (int i = 1000; i >=1; i--)
{
sum += log10(i);
}
printf("%d\n", (int)sum);//2567
return 0;
}
Q15. 小白鼠喝毒药的问题
有 1000 瓶药物,但是其中有一瓶是有毒的,小白鼠吃了一个星期以后就会死掉!请问,在一个星期内找出有毒的药物,最少需要多少只小白鼠?
注意:1只小白鼠不只局限于喝一瓶,可以喝多瓶。
答案:10只
用二进制的方法去做,2^10=1024,接近1000。给药物编号1,2,3…1000,给小白鼠编号1,2,3…10,对应10个bit位。把瓶子数转换为二进制数,1给小白鼠喝,0不给小白鼠喝,根据几号位的小白鼠的存活状态,转换成十进制来判断几号瓶药物是否有毒。
举例:
瓶子编号------------对应二进制数--------几号小白鼠喝
1------------------00000 00001---------------1
2------------------00000 00010---------------2
3------------------00000 00011-------------1、2
1000-------------111111 01000-------4、6、7、8、9、10
存活用0表示,死亡用1表示。假设1、2号小白鼠一星期后都死亡,其余小白鼠一星期后都存活,说明3号瓶药物有毒(因为1、2号小白鼠都喝过)
Q16 混装问题
问题描述
有3箱水果,一箱是苹果,一箱是橘子,一箱是两种水果的混装,三个箱子上都贴了标签,但所有的标签都贴错了,现在你只拿出一个水果来判断3个箱字里的情况。
解答思路
因为都贴错了,所以共有两种贴错的情况:
实际依次是:苹果、橘子、混装
标签依次是:橘子、混装、苹果
或---------------混装、苹果、橘子
注意最后一列,从最后一列入手。
从贴 ”混装“ 标签的箱子里边拿
1.若拿出的是橘子,则贴有橘子标签的是苹果,贴有苹果标签的是混装
2.若拿出的是苹果,则贴有苹果标签的是橘子,贴有橘子标签的是混装
Q17. 盲人拿袜子
问题描述
有两位盲人,他们都各自买了两对黑袜和两对白袜,八对袜子的布质、大小完全相同,而每对袜子都有一张商标纸连着。两位盲人不小心将八对袜子混在一起。他们每人怎样才能取回黑袜和白袜各两对呢?
解答思路
如果让盲人成对的去拿,不能保证刚好拿的是两对黑和两对白。正确分法是:
把袜子拆开,每人随便拿一只,注意要每拆一对,两人就要分一次。这样就能保证每人拿到4只黑袜,4只白袜。
本题思路较为简单,但是不太好想,容易思维固化,袜子不分左右,拿哪一只都一样,不一定非要成对去拿。
Q18
问题描述
有 50 家人家,每家一条狗。有一天警察通知,50 条狗当中有病狗,行为和正常狗不一样。每人只能通过观察别人家的狗来判断自己家的狗是否生病,而不能看自己家的狗,如果判断出自己家的狗病了,就必须当天一枪打死自己家的狗。结果,第一天没有枪声,第二天没有枪声,第三天开始一阵枪响,问:一共死了几条狗?
解答思路
3条
1.假设有一条病狗,第一天病狗的主人发现其余49条狗和自己的狗不一样,就会打死自己的狗,然而第一天没有枪声,所以病狗数量大于1。
2.假设有两条病狗,第一天病狗的主人发现其余49条狗中有一条病狗,第一天应该有枪声,然而没有,所以知道病狗数量大于1,进而推出自己狗是病狗,就会打死,于是第二天就会有枪响,但是没有,所以病狗数量大于2。
3.假设有三条病狗,按照以上推理,第三天出现了枪声,符合推理。
同类型问题
一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其他人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽
子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?
解答思路
3个人
1.假设有1个人戴黑帽子,因为至少有一顶黑帽,第一次带黑帽的人看到其他人都是白帽,认为自己一定戴的是黑帽,关灯时就会扇耳光,然而没有,所以戴黑帽人数大于1。
2.假设有2个人戴黑帽子,其中一个戴黑帽第一次观察到有一人戴黑帽并且关灯时无声音,于是推出戴黑帽子的人数大于1,于是知道自己带黑帽子,然而第二次关灯没有听到声音,所以戴黑帽人数大于2。
3.假设有3个人戴黑帽子,按照以上推论,到第三次有声音,正确。
总结
这类问题,第几次出现不同的反应,就会有几个。
Q.19 飞机加油
问题描述
每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈。问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
解答思路
3架飞机,起飞五次
设地球一圈长度为S,飞机A、B、C起飞,让A飞一圈回到起飞的飞机场。
1.首先3架飞机共用B的油。设B最远飞到X1处就得返回。
S/2=3*X1+X1 X1=S/8,B在S/8处返回,A、C继续往前飞。
2.设C最远飞到X1+X2处就得返回。
S/2=2*X2+X2+X1 X2=S/8 C在(S/8+S/8=S/4)处返回,A继续往前飞。
3.此时B和C的油让A已经飞出S/8+S/8=S/4处,再加上A本身的油最多能飞到S/4+S/2=3S/4处,距离机场还有S/4。
4.让B逆时针去接,飞到距离机场还剩S/4的地方,剩余S/4的油,然后平分给A,A和B还能再飞S/8,此时两架飞机距离机场还剩S/8。
5.再让C逆时针去接,C飞到距离机场还剩S/8处还剩3S/8的油,刚好能够让三架飞机飞回去。
注意
1.飞机可以顺时针飞,也可以逆时针飞
2.同一架飞机可以起飞多次,这也是满足题目中至少的条件
开关灯
问题描述
一个屋子有一个门(门是关闭的)和3盏电灯。屋外有3个开关,分别与这3盏灯相连。你可以随意操纵这些开关,可一旦你将门打开,就不能变换开关了。确定每个开关具体管哪盏灯?
突破点
灯泡最明显的特征就是亮或者不亮,但仅靠这个是分辨不出来的。根据灯泡长时间亮着会发热这一特性,来判断对应开关(这个点不太好想,虽然说是常识性问题…)
解答思路
把三个开关分别设为A,B,C。先把A打开,过一段时间把A关掉,打开B,推开门进去。
1.灯泡暗的但是有温度的是A
2.灯泡亮着的是B
3.灯泡暗的并且没有温度是C