Python 中用于检查给定数字是否是斐波那契数列的程序


假设我们有一个数字 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 * 平方根(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

更新日期: 2021 年 10 月 11 日

2K+ 浏览量

启动您的 职业生涯

完成课程获得认证

开始吧
广告