在Python中检查给定的数字是否为斐波那契数

在Python中检查给定的数字是否为斐波那契数

假设我们有一个数字n。我们必须检查n是否在斐波那契数列中。正如我们所知,在斐波那契数列中f(i) = f(i-1) + f(i-2),对于每个i从2到n,且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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程