Python程式檢查能否透過跳躍到達位置n


假設有一條從1到n的數軸。一開始我們在位置0,跳一步到1,然後跳兩格到3,再跳三格到6,以此類推。我們需要檢查是否能按照這種方式到達位置n。

所以,如果輸入n = 21,則輸出為True,因為1+2+3+4+5+6 = 21

為了解決這個問題,我們將遵循以下步驟:

  • j:= (1 + √(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

更新於: 2021年10月25日

123 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.