程序员面试智力题

下面集中归纳了一些相关的智力题,为面试做准备:


1. 烧一根不均匀的绳子,从头烧到尾总共需要1个小时,问如何用烧绳子的方法来确定15分钟的时间呢?

【解答思路】:取两根绳子,A绳子两头分别点燃开始烧,同时点燃B绳子的一头开始烧,当A绳子烧完后(半小时),点燃B绳子的另一头并开始计时,到B绳子烧完的时间刚好为15分钟。

2. 5个海盗抢到了100颗宝石,每一颗都一样大小且价值连城,他们决定这么分:抽签决定自己的号码(1~5);首先,由1号提出分配方案,大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼;如果1号死后,再由2号提出分配方案,然后剩下的4个人进行表决当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼;以此类推。条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化?

【解答思路】:海盗分金问题是很经典的问题,可以采取倒推的分析法:

   如只剩下4和5两个海盗(前面都死了),则无论4号提出任何分配方案,5号一定反对(海盗很聪明);

   则还剩3、4、5三个海盗时,3号提出(100,0,0)的方案,仍可得到两票(3号和4号,4号为了活下来一定同意);

   则还剩2、3、4、5四个海盗时,2号提出(98,0,1,1)的方案,则可得到3票(2号,4号和5号,因为他们可以多拿一个金币);

   最后,1、2、3、4、5五个海盗时,1号提出(97,0,1,2,0)或(97,0,1,0,2)两种方案,就可得到3票(1号,3号,4号或5号只要争取一个)。

3. 你让工人为你工作7天,回报是一根金条,这根金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费?

【解答思路】:用两次弄断的方法将金条分为三段,分别是1/7条,2/7条,4/7条;

   第一天,将1/7条给工人;

   第二天,将2/7条给工人,工人找回1/7条;

   第三天,将1/7条给工人;

   第四天,将4/7条给工人,工人找回1/7条和2/7条;

   第五天,将1/7条给工人;

   第六天,将2/7条给工人,工人找回1/7条;

   第七天,将1/7条给工人。

4. 小明和小华买了10斤蜂蜜,装在一个大瓶子里.要把蜂蜜平分,只有两个空瓶子,一个正好装7斤,另一个正好装3斤,怎样才能用最简单的方法把蜂蜜分成两个5斤?

【解答思路】:一共有三个瓶子:大瓶子、7斤瓶和3斤瓶,下面用(X,Y,Z)表示这三个瓶子中装的蜂蜜,Y<=7,Z<=3。

   (10, 0, 0)=> (7, 0, 3) => (7, 3, 0)=> (4, 3, 3) =>

   (4, 6, 0)=> (1, 6, 3) => (1, 7, 2)=> (8, 0, 2) =>

   (8, 2, 0)=> (5, 2, 3) => (5, 5, 0)

5. 有1000桶酒,其中1桶有毒,而一旦吃了,毒性会在1周后发作,现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠?

【解答思路】: 主要是要把酒按0-999编号,并转化为2进制,1000<1024,所以转化为2进制后可占10位。让第一只老鼠喝编号右起第一位为1的酒,让第二只老鼠喝编号右起第二位为1的酒,依次类推,因为1000桶酒占10位,所以只需要10只老鼠。

   哪只老鼠一周后死了,说明那一位为1,比如第2、4、6老鼠死了,则说明第0000101010瓶酒有毒,即42号酒有毒。

6. 有两张标准世界地图,比例尺分别为1:200000和1:300000将两张地图完全重合,然后拿一个图钉按下,你认为有可能按下的点为同一个真实地球上的点吗?

【解答思路】: 有可能,两张地图比例不同,形状肯定相同,所以两者是相似的,将小的地图水平拿起来,大的地图水平位于下方,则两者四个角连起来会汇聚于一点,形成一个四棱锥,然后做这个四棱锥的垂线,与两个地图的焦点就是要的那个点。

7. 3个玩家A、B、C渡河,每个人都有自己的灵兽,玩家看到落单的灵兽(主人不在身边)会攻击灵兽,目前只有一条船(最多只能载2个动物),灵兽也会划船,求和谐的渡河方案(最少次数)。

【解答思路】: 初试状态为AaBbCc都在河的一边;

   第一来回,Aa过去,A回来;ABbCc----------a

   第二来回,Bb过去,a回来;AaCc------------Bb

   第三来回,AC过去,b回来,abc--------------ABC

   第四回合,ab过去,C回来,Cc----------------AaBb

   第九次,Cc过去,渡河完成。

   每次来回,河对岸都是增加一个状态,最后一次渡河可一次增加两个状态,所以最少是2*(6-2)+1= 9次。

8. 猜牌问题:S先生、P先生和Q先生知道抽屉里有16张扑克牌,红桃A、Q、4,黑桃J、8、4、2、7、3,草花K、Q、5、4、6,方块A、5。约翰教授从16张牌中抽出一张,把点数告诉P先生,花色告诉Q先生,并问P先生和Q先生:你们能从已知的点数或花色中推知这张牌是什么牌吗?于是,S先生听到以下对话:

   P先生:我不知道这张牌。

   Q先生:我知道你不知道这张牌。

   P先生:现在我知道这张牌了。

   Q先生:我也知道了。

听完上述对话,S先生就能推出这张牌是什么牌?

【解答思路】:P先生只知道点数,Q先生只知道花色,流程如下。

   P先生说我不知道这张牌:说明这张点数的牌至少有两个花色,所以可排除黑桃所有牌,草花K、6;

   Q先生说我知道你不知道这张牌:说明这个花色的每个点数都有其他花色,所以可排除草花(K、6唯一),只剩红桃A、Q、4,方块A、5;

   P先生说现在我知道这张牌了:说明这个点数在红桃和方块两个花色中是唯一的,可排除红桃A和方块A;只剩红桃Q、4,方块5;

   Q先生说我也知道了:说明这花色只剩下一张符合条件的牌,只有方块5。

   所以确定是方块5。

9. 一个5*5的方格,在每个小格中填入0或1,使得各行各列之和均为偶数,请问一共有多少种填法?

【解答思路】: 答案为2^16,分析如下,使第一行为偶数有2^4中方法,即前四个数随便填,最后一个数被前四个数确定;使前四行为偶数有2^(4+4+4+4)种方法;最后一行的元素,根据列和偶数,被每一列的前四位确定;同时,根据每一列和都是偶数,元素和是偶数,前四行和是偶数,故最后一行和是偶数。

10. 苏格拉底的三个弟子向老师求教:怎样才能成功呢?苏格拉底没有直接回答,而是让他们去走麦田,只许前进,且仅给一次机会,要求是:选摘一个最好、最大的麦穗。如果你是三个弟子之一,你会怎么做?

【解答思路】:这是一道开放题,我的想法是,可以把麦田的前一半作为学习摸索阶段,只观察和记录,了解麦田中麦穗的质量和大小,进行总结,得出结论,什么质量的麦穗能够达到优秀麦穗的标准(比如占前一半麦穗的前10%);

   在后一半的麦田中,看到第一个符合优秀麦穗标准的麦穗,就选摘下来。

   对应于追求成功,其实应该通过学习和实践得出一个合理的期望值,然后努力达到符合该期望值的成绩,其实就达到了成功状态!

11. 给出5个字母O T T F F 请推理并写出后5个字母,并说明原因。

【解答思路】: 这道题特别坑爹,前五个字母分别是one,two, three, four, five的首字母,所以后五个字母应该分别是S(six), S(seven), E(eight),N(nine), T(ten)。

12. 医院,某人说:医护人员共16人,以下的情况,包括我和不包括我对情况没有任何改变,医生人数少于护士人数,男护士少于男医生,女护士少于男护士,至少一名女医生,问题:某人的性别及身份?

【解答思路】:不包括我的情况,共有15人;

   医生人数少于护士人数,说明医生最多7人,护士最少8人;

   女护士少于男护士,说明男护士最少5人,女护士最多3人;

   男护士少于男医生,说明男医生最少6人;

   至少一名女医生,结合男医生最少6人,医生最多7人,可知医生一共7名,男医生6名,女医生1名;护士一共8名,男护士5名,女护士3人;

   加上我之后仍满足条件,若我为医生,不符合条件(医生人数少于护士人数);若我为男护士,不符合条件(男护士少于男医生),所以我为 女护士,符合所有条件。

13.考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。谁没有地方放置新的硬币,谁就输了。游戏的先行者还是后行者有必胜策略?这种策略是什么?
答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地方相对称的位置。这样,只要后行者能放,先行者一定也有地方放。先行者必胜。

14. A、B两人分别在两座岛上。B生病了,A有B所需要的药。C有一艘小船和一个可以上锁的箱子。C愿意在A和B之间运东西,但东西只能放在箱子里。只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。如果A和B各自有一把锁和只能开自己那把锁的钥匙,A应该如何把东西安全递交给B?
答案:A把药放进箱子,用自己的锁把箱子锁上。B拿到箱子后,再在箱子上加一把自己的锁。箱子运回A后,A取下自己的锁。箱子再运到B手中时,B取下自己的锁,获得药物。

15.某种药方要求非常严格,你每天需要同时服用A、B两种药片各一颗,不能多也不能少。这种药非常贵,你不希望有任何一点的浪费。一天,你打开装药片A的药瓶,倒出一粒药片放在手心;然后打开另一个药瓶,但不小心倒出了两粒药片。现在,你手心上有一颗药片A,两颗药片B,并且你无法区别哪个是A,哪个是B。你如何才能严格遵循药方服用药片,并且不能有任何的浪费?
答案:把手上的三片药各自切成两半,分成两堆摆放。再取出一粒药片A,也把它切成两半,然后在每一堆里加上半片的A。现在,每一堆药片恰好包含两个半片的A和两个半片的B。一天服用其中一堆即可。

16.有25匹马,速度都不同,但每匹马的速度都是定值。现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢。问最少赛几场可以找出25匹马中速度最快的前3名?百度2008年面试题

每匹马都至少要有一次参赛的机会,所以25匹马分成5组,一开始的这5场比赛是免不了的。接下来要找冠军也很容易,每一组的冠军在一起赛一场就行了(第6场)。最后就是要找第2和第3名。我们按照第6场比赛中得到的名次依次把它们在前5场比赛中所在的组命名为A、B、C、D、E。即:A组的冠军是第6场的第1名,B组的冠军是第6场的第2名……每一组的5匹马按照他们已经赛出的成绩从快到慢编号:

A组:1,2,3,4,5
B组:1,2,3,4,5
C组:12,3,4,5
D组:1,2,3,4,5
E组:1,2,3,4,5

从现在所得到的信息,我们可以知道哪些马已经被排除在3名以外。只要已经能确定有3匹或3匹以上的马比这匹马快,那么它就已经被淘汰了。可以看到,只有上表中粗体蓝色的那5匹马才有可能为2、3名的。即:A组的2、3名;B组的1、2名,C组的第1名。取这5匹马进行第7场比赛,第7场比赛的前两名就是25匹马中的2、3名。故一共最少要赛7场。

这道题有一些变体,比如64匹马找前4名。方法是一样的,在得出第1名以后寻找后3名的候选竞争者就可以了。

17.IBM笔试题:一普查员问一女人,“你有多少个孩子,他们多少岁?”
女人回答:“我有三个孩子,他们的岁数相乘是36,岁数相加就等于旁边屋的门牌号码。“普查员立刻走到旁边屋,看了一看,回来说:“我还需要多少资料。”女人回答:“我现在很忙,我最大的孩子正在楼上睡觉。”普查员说:”谢谢,我己知道了。”
问题:那三个孩子的岁数是多少。
36 = 1 × 2 × 2 × 3 × 3
所有的可能为
1,1,36;sum = 38
1,2,18;sum = 21
1,3,12;sum = 16
1,4,9;sum = 14
1,6,6;sum = 13
2,2,9;sum = 13
2,3,6;sum = 11
3,3,4;sum = 10
由于普查员知道了年龄和之后还是不能确定每个孩子的年龄,所以可能性为
1,6,6;sum = 13
2,2,9;sum = 13
由于最大(暗含只有一个最大)的孩子在睡觉,所以只可能是
2,2,9;sum = 13

18.有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐分成50、90克各一份?
答:第一步:把140克盐分成两等份,每份70克。
第二步:把天平一边放上2+7克砝码,另一边放盐,这样就得到9克和61克分开的盐。
第三步:将9克盐和2克砝码放在天平一边,另一边放盐,这样就得到11克和50克。于是50和90就分开了。

19.有三筐水果,一筐装的全是苹果,第二筐装的全是橘子,第三筐是橘子与苹果混在一起。筐上的标签都是骗人的,(比如,如果标签写的是橘子,那么可以肯定筐里不会只有橘子,可能还有苹果)你的任务是拿出其中一筐,从里面只拿一只水果,然后正确写出三筐水果的标签。
答:从贴有苹果和橘子标签的筐中拿出一个水果,如果是苹果,说明这个筐中全是苹果,那么贴苹果标签的筐里装的全是桔子,则贴有桔子标签的筐中装的苹果和桔子;如果拿出的一个水果是桔子,说明这个筐中全是桔子,那么贴桔子标签的筐里装的全是苹果,贴苹果标签的筐里装的是苹果和桔子。

20.题目如下:
0 1 2 3 4 5 6 7 8 9
_ _ _ _ _ _ _ _ _ _

在横线上填写数字,使之符合要求。
要求如下:对应的数字下填入的数,代表上面的数在下面出现的次数,比如3下面是1,代表3要在下面出现一次。

正确答案是:0 1 2 3 4 5 6 7 8 9
6 2 1 0 0 0 1 0 0 0

我的思路是:因为第二行的数字是第一行的数在下面出现的次数,下面10个格子,总共10次。。。所以第2排数字之和为10。

首先从0入手,先填9,肯定不可能,9下面要是1,只剩8个位填0,不够填8,8下面要填1,1要至少填2,后面不用再想,因为已经剩下7个位置,不够填0……如此类推。到0下面填6的时候就得到我上面的答案了。。

其实可以推出这个题目的两个关键条件:
1、第2排数字之和为10。
2、两排数字上下相乘之和也是10!

21.灯管问题

在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分那个开关控制那一盏灯?

解答:打开一盏灯10分钟,关掉,打开第二盏,进去看看哪盏亮,摸摸哪盏热,热的是第一个打开的开关开的,亮的是第二个开关开的,另一个就是第三个。

22. 两位盲人问题

他们都各自买了两对黑袜和两对白袜,八对袜了的布质、大小完全相同,而每对袜了都有一张商标纸连着。两位盲人不小心将八对袜了混在一起。 他们每人怎样才能取回黑袜和白袜各两对呢?

答案:每一对分开,一人拿一只,因为袜子不分左右脚的;

23. 喝啤酒问题

假如每3个空啤酒瓶可以换一瓶啤酒,某人买了10瓶啤酒,那么他最多可以喝到多少瓶啤酒?

答案:喝完10瓶后用9个空瓶换来3瓶啤酒(喝完后有4个空瓶)喝完这三瓶又可以换到1瓶啤酒(喝完后有2个空瓶),这时他有2个空酒瓶,如果他能向老板先借一个空酒瓶,就凑够了3个空瓶可以换到一瓶啤酒,把这瓶喝完后将空瓶还给老板就可以了。

所以他最多可以喝10+3+1+1=15瓶

24. 三人住旅馆

有三个人去住旅馆,住三间房,每一间房$10元,于是他们一共付给老板$30,第二天,老板觉得三间房只需要$25元就够了于是叫小弟退回$5给三位客人,谁知小弟贪心,只退回每人$1,自己偷偷拿了$2,这样一来便等于那三位客人每人各花了九元,于是三个人一共花了$27,再加上小弟独吞了不$2,总共是$29。可是当初他们三个人一共付出$30那么还有$1呢?

答案:他们所消费的27元里已经包括小弟贪污的2元了,再加退还的3元=30元。这种题一定不要乱了阵脚,根据一条思路做:这30元现在的分布是:老板拿25元,伙计拿2元,三人各拿1元,正好!

25. 小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会熄灭。问:小明一家如何过桥?

参考答案:

1、小明和小明弟弟过桥,需要花费3秒(小明弟弟慢,花3秒),计T1 = 3秒,总用时TC=3秒;

2、小明回来,需要花费1秒,记T2=1秒,总用时TC=4秒;

        3、小明爷爷和小明妈妈一起过桥,需要花费12秒,记T3=12,总用时TC=16秒;

        4、小明弟弟回来,需要花费3秒,记T4=3秒,总用时TC=19秒;

        5、小明和小明爸爸一起过桥,需要花费6秒,记T5=6秒,总用时TC=25秒;
        6、小明回来,需要花费1秒,记T6=1秒,总用时TC=26秒;
        7、小明和小明弟弟一起过桥,需要花费3秒,记T7=3秒,总用时TC=29秒;

这样,在第3步,小明爷爷和妈妈过桥后留下,第5步,小明爸爸过桥后留下,第7步,小明和小明弟弟过桥后,一家人成功在30秒内过桥。

26. 有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐 分成50、90克各一份?

参考答案:

<span style="font-size:14px;color:#3333ff;"><strong>先用天平把140g分成两等份,每份70g
在用天平把其中一份70g分成两等份,每份35g
取其中一份35g放到天平的一端,把7g的砝码也放到这一段,再把2g的砝码放到天平的另一端。从7g砝码一端移取盐到2g砝码的一端,知道天平平衡。这时,2g砝码一端盐的量为20g。把这20g和已开始分出的未动一份70g盐放在一起,就是90g,其他的盐放在一起,就是50g。</strong></span>
27. 想象你在镜子前,请问,为什么镜子中的影像可以颠倒左右,却不能颠倒 上下?

参考答案:

因为人的两眼在水平方向上对称。

28. 你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被 污染的重量+1.只称量一次,如何判断哪个罐子的药被污染了?

参考答案:

从第一盒中取出一颗,第二盒中取出2 颗,第三盒中取出三颗。 依次类推,称其总量。再根据总重量增加多少判断污染的药罐。

29.假设你有8个球,其中一个略微重一些,但是找出这个球的惟一方法是将 两个球放在天平上对比。最少要称多少次才能找出这个较重的球?

参考答案:

两次。
第一次:各取3个分放天平两边,如平衡,则重的在另两个中,再把另两个分放天平两边,哪边重些哪边就是那个重的球;
第二次:在不平衡的情况下,把稍重的一边取两个分放天平两边,如平衡则另一个为稍重的,如不平衡重的一边为稍重的一个。

30.4,4,10,10,加减乘除,怎么出24点?

参考答案:

44-10-10=24
<pre id="best-content-243063278" class="best-text mb-10" style="margin-top:0px; margin-bottom:10px; padding:0px; font-family:arial,'courier new',courier,宋体,monospace; white-space:pre-wrap; word-wrap:break-word; font-size:14px; line-height:24px" name="code">(10×10-4)÷4=24
 
  

猜你喜欢

转载自blog.csdn.net/evo_steven/article/details/53067858