用 Python 编写程序检查给定数字是否为斐波那契数列

pythonserver side programmingprogramming更新于 2025/12/17 23:40:17

假设我们有一个数字,比如 n。我们必须检查 n 是否存在于斐波那契数列中。我们知道,在斐波那契数列中,对于从 2 到 n 的每个 i,f(i) = f(i-1) + f(i-2),并且 f(0) = 0,f(1) = 1。

因此,如果输入为 n = 13,则输出将为 True,因为斐波那契数列中的某些项为:0、1、1、2、3、5、8、13、21、34,因此存在 34。

为了解决这个问题,我们将遵循以下步骤 −

  • phi := 0.5 + 0.5 * square root of(5.0)
  • a := phi * n
  • 当 n 与 0 相同或 a 为整数时返回 true

示例

让我们看看下面的实现以便更好地理解 −


from math import sqrt
def solve(n):
   phi = 0.5 + 0.5 * 5.0**0.5
   a = phi * n
   return n == 0 or abs(round(a) - a) < 1.0 / n

n = 13
print(solve(n))

输入

13

输出

True

相关文章


有用资源