Python程序:如何检查给定的数字是否为斐波那契数?
在本文中,我们将学习下面的问题陈述的解决方案−
更多Python相关文章,请阅读:Python 教程
问题陈述
给定一个数字n,请检查n是否为斐波那契数
大家都知道第n个斐波那契数是前两个斐波那契数的和。但它们也提供了另一种有趣的关系,不同于递归关系。
如果(5n² + 4)或(5n² – 4)是一个完全平方数,那么该数字具有斐波那契的性质。
我们将使用此属性来检查一个数字是否是斐波那契数。
现在让我们看一下Python脚本的实现−
示例
import math
# 如果x是一个完全平方数
def isPerfectSquare(x):
s = int(math.sqrt(x))
return s*s == x
# 如果n是一个斐波那契数
def isFibonacci(n):
# 如果5n² + 4或5n² - 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 不是一个斐波那契数
所有函数和变量都在全局框架中声明,如下图所示−
结论
在本文中,我们学到了如何识别给定的数字是否为斐波那契数。