C语言/单片机工程师 面试推理题

问题:

假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。

解答:
先把六升的水壶装满,再倒进五升的水壶里面,这样子的话六升的水壶里面还剩一升水。然后再把五升水壶里面的水倒掉,把那一升水倒进五升的水壶里面,再把六升的水壶里面装满水。然后再把六升水壶里面的水倒进五升的水壶里面,装满为止,六升的水壶里面就还会再剩两升水,再把五升的水壶里面的水倒掉。把那两升水倒进五升的水壶里面 。这时候只要把六升水壶装满水,再倒进五升的水壶里面 装满为止。剩下的就刚好是三升水了。

问题:

"一个教授逻辑学的教授,有三个学生,而且三个学生均非常聪明!一天教授给他们出了一个题,教授在每个人脑门上贴了一张纸条并告诉他们,每个人的纸条上都写了一个正整数,且某两个数的和等于第三个!(每个人可以看见另两个数,但看不见自己的)
教授问第一个学生:你能猜出自己的数吗?回答:不能;
问第二个,不能;
第三个,不能;
再问第一个,不能;
第二个,不能;
第三个:我猜出来了,144!
教授很满意的笑了。请问您能猜出另外两个人的数吗?
解答:
大概的思路就是去设想一下,比如你看到另外两个人,一个是30一个是20那你头上的肯定就是50或者10。可是如果你看到了另外两个人都是20,那就可以肯定自己是40,因为不可能是0。
如果是96和48,那从C的视角可以推测自己是48或144,如果是48的话,那A或B就会有一个人看到两个48从而在第一轮推出自己的数字,可是第一轮全都没有猜出来。否掉这种可能。
由题目可知第二轮的C推出了自己头上的数字,那么必然是在第二轮中否掉了自己的某种结果,通过之前的推理,由144构成的两个数字构成倍数关系,由第一轮结果可否定两倍关系,而第二轮能推测出结果,可知这两数构成三倍关系,即108和36。
C在第一轮中否定掉头上为72的推测,在第二轮中得出144的答案

发布了65 篇原创文章 · 获赞 36 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_40860986/article/details/94496438