用 Python 编写程序检查我们是否可以通过跳跃到达位置 n

pythonserver side programmingprogramming更新于 2026/2/1 8:44:17

假设有一条从 1 到 n 的数字线。首先我们在位置 0,跳一步到达 1,然后跳两步到达位置 3,然后跳三步到达位置 6,依此类推。我们必须检查保持这个状态,我们是否可以到达位置 n。

因此,如果输入为 n = 21,则输出将为 True,因为 1+2+3+4+5+6 = 21

要解决这个问题,我们将遵循以下步骤 −

  • j:= (1 + square root of (1+8*n)) / 2
  • if |j - int part of j| <= 0,则
    • 返回 True
  • 否则返回 False

示例

让我们看看下面的实现以便更好地理解 −

from math import sqrt
def solve(n):
   j=(1+sqrt(1+8*n))/2
   if abs(j-int(j))<=0:
      return True
   else:
      return False

n = 21
print(solve(n))

输入

21

输出

True

相关文章


有用资源