首页 > 代码库 > 有趣的的算法、逻辑面试题
有趣的的算法、逻辑面试题
-
A、B两人分别在两座岛上。B生病了,A有B所需要的药。C有一艘小船和一个可以上锁的箱子。C愿意在A和B之间运东西,但东西只能放在箱子里。只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。如果A和B各自有一把锁和只能开自己那把锁的钥匙,A应该如何把东西安全递交给B?
答案:A把药放在箱子,用自己的锁把箱子锁上。B拿到箱子后,再在箱子上加一把自己的锁。箱子运回A后,A取下自己的锁。箱子再运到B手中时,B取下自己的锁,获得药物。
-
有一个软件公司,1/2的人是系统分析员,2/5的人是软件工程师,有1/4的人两者都是,问有多少人两者都不是?
答案:1 - ( 1/2 + 2/5 - 1/4) = 7/20 = 0.35
-
有25匹??,速度都不同,但每匹??的速度都是定值。现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹??的相对快慢。问最少赛几场可以找出25匹??中速度最快的前3名?(百度2008年面试题)
-
答案:每匹??都至少又一次参加比赛的机会,所以25匹??分为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组:1,2,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场。
-
4. 考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。谁没有地方放置新的硬币,谁就输了。游戏的先行者还是后行者有必胜策略?这种策略是什么?
-
答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地方相对称的位置。这样,只要后行者能放,先行者一定也有地方放。先行者必胜。
5. 一个矩形蛋糕,蛋糕内部有一块矩形的空洞。只用一刀,如何将蛋糕切成大小大小相等的两块?
-
答案:注意到平分矩形面积的线都经过矩形的中心。过大矩形和空心矩形各自的中心画一条线,这条线显然把两个矩形都分成了一半,它们的差当然也是相等的。
有趣的的算法、逻辑面试题