本文共 455 字,大约阅读时间需要 1 分钟。
原题:(同学面试面来的题),如果有 20 个银币,和 1个金币,有A和B两人轮流按照如下规则来取:A先B后,每人每次只能取 1~4 枚,银币取完了后才能取金币(就是说不能同时取金银币),最后取到金币的人赢,问A第一次取多少可以保证稳赢。
题目可以抽象成
a + (Min + Max) * n + 1 = total. min=1,max=4,total=20,很明显得到a=4total=20可以很好的理解
那么为什么是min+max乘n呢,因为A第一手拿了,要保证B只能拿最后的那一个的话,就得确保这个min+max是个固定的数。那么为什么是mix+max呢,因为假如B拿一个的话你就可以拿四个,假如B拿四个的话你就只能拿一个。
这个是本题的关键点,有些人想不通是为什么,因为对手最大可以拿4个,最小可以拿一个,加入对手拿一个你们的和的范围就是2-5,假如拿四个和的范围就是5-8,可以知道唯一可以确保的和就是5。
所以此题可以得出n=3,a=4,即第一手只要拿四个就可以保证稳赢。
转载地址:http://jhrwi.baihongyu.com/