程序员面试逻辑题

(1条消息) 智力题—8个球,怎样用最少的次数找出较重的那个球_苏羨的博客-CSDN博客_八个球其中一个球重量不一样最少几次找到icon-default.png?t=M4ADhttps://blog.csdn.net/qq_44847147/article/details/101030830(6 条消息) 一根密度不均匀的木棍,从一端点燃,烧完是一个小时,那么从两端点燃,烧完的时间是不是半个小时? - 知乎 (zhihu.com)icon-default.png?t=M4ADhttps://www.zhihu.com/question/324445311(1条消息) 1到100每次去掉奇数项后剩下的数或每次去掉偶数项后剩下的最后两位数_Wintersee的博客-CSDN博客icon-default.png?t=M4ADhttps://blog.csdn.net/u012386109/article/details/53192347(1条消息) 小鼠试毒问题(二进制)_ChanYipFan的博客-CSDN博客icon-default.png?t=M4ADhttps://blog.csdn.net/weixin_43530726/article/details/87920137

第一题

1、题目

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

2、解答

最少要两次

先从 8 个球中拿出六个球,天平两端各三个,若平衡,则较重的那个球在剩余的两个里,把剩余的两个球放在天平上,较重的那端就是较重的球;若不平衡,则将 6 个球中较重一端的其中两个放在天平上,若平衡,则剩余的那个就是较重的球;若不平衡,较重的那端,就是较重的球

第二题

1、题目

很多根密度不均匀的木棍,从一端点燃,烧完是一个小时。从两端点燃,烧完的时间是半个小时,怎么测量精确 45 分钟

2、解答

将 A 木棍在两端同时点燃,同时在一端点燃 B 木棍;

当 A 木棍烧完时,时间过去了 30 分钟,此时B木棍燃烧至燃烧中点,我们在此点燃 B 火柴另一端;

当 B 木棍烧完时,时间又过去了剩下的一半,即 15 分钟,因此总共过去 45 分钟

第三题

1、题目

1 到 100 每次去掉奇数项后剩下的数或每次去掉偶数项后剩下的最后两位数

2、解答

第一次去掉奇数后,剩下 2、4、6……96、98、100,所有的数字都是 2=2^1的整数倍;

第二次去掉奇数项后,剩余的数为 4、8 、12、 16……92、96、100,均是 4=2^2 的整数倍;

第三次去掉奇数项后,剩余的数应为8=2^3的整数倍的偶数,即是 8、16、24、32、40、48、56、64、72、80、88、96;

第四次去掉奇数项后,剩余的数为 16=2^4 的整数倍的偶数,即是 16、32、48、64、80、96;

第五次去掉奇数项后,剩余数为 32=2^5 的整数倍的偶数,即是 32、64、96;

最后一次去掉奇数项,则剩余64

第四题

1、题目

1000 桶酒,其中 1 桶有毒。而一旦吃了,毒性会在 1 周后发作。问最少需要多少只老鼠可在一周内找出毒酒?

2、解答

首先对 1000 桶酒按照 1~1000 进行二进制编码,因为 2^10 = 1024 > 1000,因此需要 10 位二进制

故只需要取 10 只老鼠,每只老鼠只喝其对应位数为 1 的编号的酒

然后给10只老鼠按以下编码:

第一只 0000000001

第二只 0000000010

第三只 0000000100

第十只 1000000000

结果举例:编号为 1000100011 的酒是毒酒。

则对应喝酒的只有第一只,第二只,第六只,第十只死亡
 


 

你可能感兴趣的