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

pythonserver side programmingprogramming更新于 2025/12/20 11:56:17

在本文中,我们将了解下面给出的问题陈述的解决方案 −

问题陈述

给定一个数字 n,检查 n 是否为斐波那契数

我们都知道第 n 个斐波那契数是前两个斐波那契数的总和。但是它们还提供了除递归关系之外的有趣关系。

当且仅当 (5*n2 + 4) 或 (5*n2 – 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) 或 isPerfectSquare(5*n*n - 4)
for i in range(1,11):
   if (isFibonacci(i) == True):
      print (i,"is a Fibonacci Number")
   else:
      print (i,"不是斐波那契数")

输出

1 是斐波那契数
2 是斐波那契数
3 是斐波那契数
4 不是斐波那契数
5 是斐波那契数
6 不是斐波那契数
7 不是斐波那契数
8 是斐波那契数
9 不是斐波那契数
10 不是斐波那契数

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

结论

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


相关文章


有用资源