假设有一条从 1 到 n 的数轴。首先我们在位置0,跳一步到1,然后跳两个位置到位置3,然后跳三个位置到6,依此类推。我们必须检查是否保持这一点,我们是否可以到达位置 n。
因此,如果输入像 n = 21,那么输出将为 True,因为 1+2+3+4+5+6 = 21
让我们看看以下实现以获得更好的理解 -
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