【Java校招面试】实战面经(十三)——常见的智力题


前言

“实战面经”是本专栏的第二个部分,本篇博文是第十三篇博文,主要收集了面试中常考的智力题,如有需要,可:

  1. 点击这里,返回本专栏的索引文章
  2. 点击这里,返回上一篇《【Java校招面试】实战面经(十二)——面试中常考的手撸算法题》

一、100层楼扔鸡蛋问题

问题: 有两个一样的鸡蛋,有一栋100层的大楼,鸡蛋从楼上扔下去可能坏也可能不坏,问:最少测试多少次能够找到鸡蛋不坏的最高楼层

解答过程:

  1. 假定需要扔x次,第一次在x层开始扔。如果没碎,第二次扔的次数上限变成了x – 1次,所以第二次向上提升x – 1层,即在x + x - 1

  2. 以此类推,得出等式x + x - 1 + x - 2 + … + 1 = 100,简化为(x+1)x / 2= 100,解得,x = 13.65,向上取整,得到最多需要14次。


二、魔方染色问题

问题: 一个N阶的魔方,6个面都染上色,请问被染上色的小正方体有几个?

解答过程:

表面被染上色,中心N-2阶没有被染色,没有被染色的小正方体是 ( N − 2 ) 3 (N-2)^3 (N2)3个,总的小正方体数为 N 3 N^3 N3个,所以被染上色的魔方一共 N 3 − ( N − 2 ) 3 N^3-(N-2)^3 N3(N2)3个。


三、两根香定时间问题

问题: 有两根粗细不均的香,每根烧完都需要1小时,如何确定一段长度为15分钟的时间?45分钟呢?

解答过程:

同一时间开始,香A点一头,香B点两头,当B烧完,A还有半小时的量,此时把A另一头也点着,A烧完就还需要15分钟,如果算上B烧完的半小时,就是45分钟。


四、两个水桶量水问题

问题: 有两个分别为3升和5升的水桶,如何精确测量出4升水?

解答过程:

  1. 先将5升水桶装满水。
  2. 然后将5升水桶的水倒入3升水桶,直到3升水桶满为止。此时,5升水桶还剩下2升水。
  3. 倒空3升水桶,将5升水桶中的2升水倒入3升水桶。
  4. 再次将5升水桶装满水。
  5. 将5升水桶的水倒入3升水桶,直到3升水桶满为止。此时5升水桶中剩下4升水。

五、3门问题

问题: 有3扇门,其中一扇门后有奖品,另外两扇门后面是空的。你先选择一扇门,然后主持人打开另外两扇门中的一扇空门。现在你可以选择坚持原来的选择或者更换为另一扇未打开的门,问更换选择是否会提高中奖概率?

解答过程:

  • 假设你选择了门A,主持人打开了门B(空的),那么奖品只可能在门A或门C。
  • 一开始选择门A中奖的概率是1/3,因此门C中奖的概率是1 - 1/3 = 2/3。
  • 所以,更换选择会提高中奖概率,从1/3提高到2/3。

六、火车过桥问题

问题: 一座长度为200米的桥,一辆速度为每小时100公里的火车从桥头驶过。火车的长度是100米,请问火车完全通过桥需要多少时间?

解答过程:

  • 首先将速度换算成每秒的速度:100公里/小时 = (100 * 1000)米/3600秒 ≈ 27.8米/秒。
  • 火车完全通过桥梁需要行驶200米 + 100米 = 300米。
  • 时间 = 距离 / 速度 = 300米 / 27.8米/秒 ≈ 10.8秒。

七、9个球问题

问题: 有9个球,其中8个重量相同,1个比较轻。现在有一个天平,问最少需要称几次才能找出那个轻的球?

解答过程:

  • 第一次:将9个球分成3组,每组3个球。将其中两组放在天平的两边,进行称重。
  • 如果天平平衡,说明轻球在第三组;如果天平不平衡,说明轻球在较轻的一边。
  • 第二次:将轻球所在的3个球再分成3组,每组1个球。将其中两个球放在天平的两边,进行称重。
  • 如果天平平衡,说明轻球是没有放在天平上的那个;如果天平不平衡,说明轻球是较轻的一边的球。
  • 因此,最少需要称2次。

八、赛马问题

问题: 有25匹马,每次只能进行5匹马的比赛,没有计时器。问最少需要比赛几次才能选出速度最快的前3名?

解答过程:

  • 第一轮:进行5场比赛,选出每组的前3名。共需要5次。
  • 第二轮:将第一轮每组的第一名进行比赛,选出总第一名。共需要1次。
  • 第三轮:将第二轮比赛中获胜的那匹马的组内第二、第三名,以及其他组中与其有关联的马(即能够确定速度比第一名慢的马)进行比赛,选出第二、第三名。共需要1次。
  • 因此,最少需要比赛7次。

九、找出有毒的水问题

问题: 有1000杯水,其中1杯有毒。有足够数量的小白鼠,问最少需要用多少只小白鼠才能测出有毒的那杯水?

解答过程:

  • 为了最小化所需的小白鼠数量,我们可以使用二进制编码来表示每杯水。因为2^10 = 1024 > 1000,所以我们至少需要10只小白鼠。
  • 给每杯水分配一个从1到1000的编号,然后将这些编号转换为10位的二进制数。
  • 对于每一位二进制数,如果某杯水的编号在该位上为1,那么就让对应的小白鼠喝这杯水。例如,第1只小白鼠喝所有编号二进制表示中第1位为1的水,第2只小白鼠喝所有编号二进制表示中第2位为1的水,依此类推。
  • 观察哪些小白鼠中毒。如果第i只小白鼠中毒,那么有毒水杯的二进制编号在第i位上为1。通过观察所有小白鼠的中毒情况,我们可以得到有毒水杯的二进制编号,从而找到有毒的那杯水。
  • 因此,最少需要10只小白鼠。

后记

这些问题主要考察求职者的逻辑思维能力、分析问题和解决问题的能力。在面试过程中,遇到这类问题时要冷静思考,运用逻辑分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IMplementist

你的鼓励,是我继续写文章的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值