一、题目描述
A、B两个人玩抢7游戏,游戏规则为A先报一个起始数字X (10 <= X <= 10000),B报下一个数字Y,(0<X-Y<3),A再报一个数字Z(0<Y-Z<3),以此类推,直到其中一个抢到7,抢到7即为胜者,在B赢得比赛的情况下,一共有多少种组合?
二、输入描述
起始数字M,如100
10 <= M <= 10000
三、输出描述
B能赢得比赛的组合次数。
四、解题思路
- 问题分析:
- 这个游戏本质上是从起始数字 m 到 7 的一个递减过程。
- 每次可以选择减1或减2,对应了两种操作。
- B 想要赢,必须在轮到自己时拿到 7。
- 问题转化:
- 我们可以将问题转化为排列组合问题。
- 从 m 到 7 的过程可以看作是排列若干个"减1"和"减2"操作。
- "减1"操作的次数 = m - 7
- 总操作次数必须为奇数,这样最后一步(到7)才会是 B 操作。
- 计算策略:
- 初始时,所有操作都是"减1",即 oneCount = m - 7, twoCount = 0。
- 然后我们逐步将两个"减1"合并为一个"减2",遍历所有可能的组合。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



