题目描述
生成斐波那契数列的第 n 项。斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, ...(F(0)=0, F(1)=1, F(n)=F(n-1)+F(n-2))
示例
输入:n = 10
输出:55
提示
使用迭代法,用两个变量 a, b 分别代表前两项,循环 n 次更新即可。迭代法比递归法更高效。
参考答案
def fibonacci(n):
"""生成斐波那契数列的第 n 项"""
if n <= 0:
return 0
if n == 1:
return 1
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b
# 测试
for i in range(10):
print(f"F({i}) = {fibonacci(i)}")
# F(0)=0, F(1)=1, F(2)=1, F(3)=2, ..., F(9)=34
print(f"F(10) = {fibonacci(10)}") # 55