用 Python 判断我们是否在游戏中获胜的程序

假设我们正在玩一个两人游戏,其中有 n 个弹珠,并且在每一轮中,玩家必须取正平方数的弹珠。如果玩家拿不到那个平方数的弹珠,他/她就输了。因此,给定一个数字 n,我们必须确定我们是否能赢得比赛。我们总是先转弯并选择最佳数量的弹珠。

因此,如果输入类似于 14,则输出将为 True。因为在第一回合,我们拿了 9 个弹珠。剩下 5 个弹珠,其他玩家最多可以从中取出 4 个弹珠,留下 1 个弹珠。所以,在下一回合,我们拿走最后一个弹珠,留下 0 个弹珠,对手无法移动。这样,我们就赢了。

示例

让我们看看以下实现以获得更好的理解 -

from math import sqrt

def solve(n):

   if n <= 0:

      return False

   ans = False

   for i in range(int(sqrt(n)), 0, -1):

      if i * i > n:

         break

      ans = ans | (not solve(n - i * i))

      if ans:

         return ans

   return ans

print(solve(14))

输入

14
输出结果
True

以上是 用 Python 判断我们是否在游戏中获胜的程序 的全部内容, 来源链接: utcz.com/z/341275.html

回到顶部