檢查給定數字是否為斐波那契數的 Python 程式


在本文中,我們將學習下面給出的問題陳述的解決方案 −

問題陳述

給定一個數字 n,檢查 n 是否為斐波那契數

我們都知道第 n 個斐波那契數是前兩個斐波那契數的和。但除了遞推關係外,它們還提供了一個有趣的關係。

當且僅當 (5*n2 + 4) 或 (5*n2 – 4) 是完全平方數時,一個數本質上是斐波那契數。

我們將使用此屬性來檢查一個數字是否為斐波那契數。

現在讓我們看看 Python 指令碼的實現 −

示例

 線上演示

import math
# if x is perfect square
def isPerfectSquare(x):
   s = int(math.sqrt(x))
   return s*s == x
# if n is a Fibinacci Number
def isFibonacci(n):
   #if one of 5*n*n + 4 or 5*n*n - 4 or both is a perferct square
   return isPerfectSquare(5*n*n + 4) or isPerfectSquare(5*n*n - 4)
for i in range(1,11):
   if (isFibonacci(i) == True):
      print (i,"is a Fibonacci Number")
   else:
      print (i,"is a not Fibonacci Number")

輸出

1 is a Fibonacci Number
2 is a Fibonacci Number
3 is a Fibonacci Number
4 is a not Fibonacci Number
5 is a Fibonacci Number
6 is a not Fibonacci Number
7 is a not Fibonacci Number
8 is a Fibonacci Number
9 is a not Fibonacci Number
10 is a not Fibonacci Number

如下圖所示,所有函式和變數都在全域性框架中宣告 −

結論

在本文中,我們學習了識別給定數字是否是斐波那契數的方法。

更新於: 11-Sep-2019

507 次瀏覽

開啟你的 事業

完成課程以獲得認證

開始學習
廣告
© . All rights reserved.