智力题---100个球两个人轮流拿,每次最多拿n个,谁拿到最后一个球获胜

前言

同事出去面试,回来说被问到了一个题,复述了下感觉挺有意思,做下记录

题目

假设排列着100个乒乓球,由两个人轮流拿球装入口袋,能拿到第100个乒乓球的人为胜利者。
条件是:每次拿球者至少要拿1个,但最多不能超过5个,
问:如果你是最先拿球的人,你该拿几个?以后怎么拿就能保证你能得到第100个乒乓球?


分析

我们不妨逆向推理,如果只剩6个乒乓球,让对方先拿球,你一定能拿到第6个乒乓球。
理由是:如果他拿1个,你拿5个;如果他拿2个,你拿4个;如果他拿3个,你拿3个;如果他拿4个,你拿2个;如果他拿5个,你拿1个。

我们再把100个乒乓球从后向前按组分开,6个乒乓球一组。100不能被6整除,这样就分成17组;第1组4个,后16组每组6个。这样先把第1组4个拿完,后16组每组都让对方先拿球,自己拿完剩下的。这样你就能拿到第16组的最后一个,即第100个乒乓球。
解答:解:根据以上分析,把100分成6个一组,余数是几,我就先拿几个,
100÷6=17(组)…4(个)

答:我先拿4个,他拿1~5中的n个,我拿6-n,依此类推,保证我能得到第100个乒乓球。

点评:本题属于典型的不会输的游戏,即如果所给的数除以6,有余数,先拿余数,再与对方拿的个数和是6,即可获胜,如果没有余数,就让对方先拿,自己再拿时与对方拿的个数和是6,自己一定获胜。

来源

你可能感兴趣的:(智力题)