📅  最后修改于: 2023-12-03 14:55:03.596000             🧑  作者: Mango
斐波那契数列是一个经典的数学问题,其中每个数字是前两个数字的和。通常,我们使用递归或动态规划来计算斐波那契数列。然而,这些方法在计算大型斐波那契数时效率较低。
空间有效的迭代法是一种更高效的方法来计算斐波那契数列。它只使用常量级别的额外空间,并且在一次迭代中计算出所有的斐波那契数。
下面是一个使用空间有效的迭代法计算斐波那契数的示例代码:
def fibonacci(n):
if n <= 0:
return None
if n == 1:
return 0
if n == 2:
return 1
prev_1 = 0
prev_2 = 1
result = 0
for i in range(3, n + 1):
result = prev_1 + prev_2
prev_1, prev_2 = prev_2, result
return result
以上代码使用了迭代的方式计算斐波那契数列的第 n
个数字。通过维护两个变量 prev_1
和 prev_2
分别代表前两个数字,以及一个变量 result
来存储计算结果。通过循环依次计算每个数字,最终得到结果并返回。
使用空间有效的迭代法计算斐波那契数列的时间复杂度为 O(n),空间复杂度为 O(1)。
以下是一些使用空间有效迭代法计算斐波那契数的示例:
print(fibonacci(1)) # 输出: 0
print(fibonacci(2)) # 输出: 1
print(fibonacci(5)) # 输出: 3
print(fibonacci(10)) # 输出: 34
通过使用空间有效的迭代法,我们可以更高效地计算斐波那契数列,特别是在处理大型数字时。