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
广告