Python程序:检查首位玩家能否通过达到目标总和获胜


假设我们有两个数字k和target。现在考虑Amal和Bimal正在玩一个游戏。在每一轮中,Amal选择一个从1到k的数字添加到初始为0的总分数中。谁先超过目标总和获胜。Amal总是先玩,我们需要检查如果两人都最佳发挥,他能否强迫获胜。

因此,如果输入像k = 5 target = 10,则输出将为True,因为如果Amal首先选择4,那么无论Bimal选择1、2、...还是5,Amal总可以通过在下一次选择5来达到10。

为了解决这个问题,我们将遵循以下步骤:

  • 如果target % (k + 1)不为0,则
    • 返回true
  • 否则
    • 返回false

示例

让我们看看下面的实现来更好地理解:

def solve(k, target):
   return target % (k + 1) != 0

k = 5
target = 10
print(solve(k, target))

输入

5, 10

输出

True

更新于: 2021年10月18日

167 次查看

开启你的职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.