如何在Python程序中检查给定数字是否为斐波那契数?
在本文中,我们将学习解决下面给出的问题陈述的方法。
问题陈述
给定一个数字n,检查n是否为斐波那契数。
我们都知道,第n个斐波那契数是前两个斐波那契数的总和。但它们还提供了一个有趣的关系,不同于递归关系。
如果(5n2+4)或(5n2-4)是一个完全平方数,则一个数在斐波那契数列中。我们将使用此属性来检查一个数字是否为斐波那契数。
现在让我们看看Python脚本的实现。
示例
import math
# 如果x是完全平方数
def isPerfectSquare(x):
s = int(math.sqrt(x))
return s*s == x
# 如果n是斐波那契数
def isFibonacci(n):
#如果5*n*n + 4或5*n*n - 4或两者之一是完美的平方
return isPerfectSquare(5*n*n + 4) or isPerfectSquare(5*n*n - 4)
for i in range(1,11):
if (isFibonacci(i) == True):
print (i,"是一个斐波那契数")
else:
print (i,"不是一个斐波那契数")
输出
1是一个斐波那契数
2是一个斐波那契数
3是一个斐波那契数
4不是一个斐波那契数
5是一个斐波那契数
6不是一个斐波那契数
7不是一个斐波那契数
8是一个斐波那契数
9不是一个斐波那契数
10不是一个斐波那契数
所有函数和变量均在全局框架中声明,如下图所示。

结论
在本文中,我们了解了识别给定数字是否为斐波那契数的解决方案。
极客教程