Python程序:如何检查给定的数字是否为斐波那契数?

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 不是一个斐波那契数

所有函数和变量都在全局框架中声明,如下图所示−

Python程序:如何检查给定的数字是否为斐波那契数?

结论

在本文中,我们学到了如何识别给定的数字是否为斐波那契数。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程