Python 中用於檢查給定數字是否是斐波那契數列的程式


假設我們有一個數字 n。我們需要檢查 n 是否存在於斐波那契數列中。我們知道在斐波那契數列中,對於從 2 到 n 的每個 i,f(i) = f(i-1) + f(i-2),並且 f(0) = 0,f(1) = 1。

所以,如果輸入類似於 n = 13,則輸出將為 True,因為斐波那契數列中的一些項為:0、1、1、2、3、5、8、13、21、34,所以存在 34。

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

  • phi := 0.5 + 0.5 * 平方根(5.0)
  • a := phi * n
  • 當 n 為 0 或 a 為整數時返回 true

示例

讓我們看看以下實現以獲得更好的理解 -

from math import sqrt
def solve(n):
   phi = 0.5 + 0.5 * 5.0**0.5
   a = phi * n
   return n == 0 or abs(round(a) - a) < 1.0 / n

n = 13
print(solve(n))

輸入

13

輸出

True

更新日期: 2021 年 10 月 11 日

2K+ 瀏覽量

啟動您的 職業生涯

完成課程獲得認證

開始吧
廣告
© . All rights reserved.