📅  最后修改于: 2023-12-03 15:12:25.980000             🧑  作者: Mango
有一个游戏,有 $m$ 张牌,以及两个玩家 A 和 B。A 和 B 轮流抽取其中的一张牌,每次只能抽一张,直到所有牌被抽完,最后一张牌被抽完的玩家获胜。现在给定 $n$,代表被抽取的牌的数量,问最后获胜的玩家是 A 还是 B?
由于每次只能抽一张牌,因此把贡献相同的牌分成一组。显然,如果 $n$ 是偶数,那么 A 必胜。否则,会出现最后一张牌被 A 抽取而 B 获胜的情况,因此需要判断最后一张牌是否被 A 抽取。
def winner(n: int, last_card: int) -> str:
if n % 2 == 0:
return 'A'
else:
return 'B' if last_card % 2 == 0 else 'A'
assert winner(3, 2) == 'B'
assert winner(3, 3) == 'A'