通过跳跃检查在 Python 中是否可以到达位置 n 的程序

通过跳跃检查在 Python 中是否可以到达位置 n 的程序

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

所以,如果输入如下:n = 21,则输出为 True,因为 1+2+3+4+5+6=21。

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

  • j := (1+sqrt(1+8*n)) / 2
  • 如果 |j- 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程