在Python中找到划艇选手减少游戏的赢家
假设我们有一个高度数组。有n个不同高度的塔。Amal和Bimal在玩游戏。游戏规则如下:
- Amal始终先行动。
-
在每次行动期间,当前玩家选择高度为X的塔并将其减少到Y [1 <= Y
- 没有行动的人将输掉比赛。
我们要找到获胜者的名字。
因此,如果输入如height = [3,1,2],则输出将为Bimal,因为初始高度为{3,1,2}。如果Amal将塔2的高度降低到1,Bimal可以将3减1,但Amal无法行动,因此Bimal获胜。
为了解决这个问题,我们将遵循以下步骤:
- 定义一个函数util(),它将采取a,n
- 输出ans := 0
- 对于范围为0到n – 1的i,执行以下操作:
- 输出ans := ans XOR a[i]
- 返回ans
- 从主方法做以下操作
- 输出n := height的大小
- 输出b :=一个大小为n的数组,并填充为0
- 对于范围为0到n – 1的i,执行以下操作:
- 如果height[i]与1相同,则
- b[i] := 0
- 否则
- b[i] := 0
- j := 2
- root :=高度的平方根的底数
- 当height[i]不等于1且j <= root时,执行以下操作:
- 如果height[i] mod j等于0,则
- 当height[i] mod j等于0时,请执行以下操作:
- b[i] := b[i] + 1
- height[i] :=高度[i]的底数
- j := j + 1
- 如果height[i]不等于1,则
- b[i] := b[i] + 1
- 如果height[i]与1相同,则
- 输出ans := util(b,n)
- 如果ans与0不同,则
- 返回“Amal”
- 否则,
- 返回“Bimal”
示例
让我们看看以下实现以更好的理解-