检查给定数字是否为斐波那契数的 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 次浏览

开启你的 事业

完成课程以获得认证

开始学习
广告