题目描述
要求输出斐波那契数列第n(1≤n≤64)项。
斐波那契的第i项总是等于它的前面两项之和,约定第一项为0,第二项为1,如下所示:
0, 1,1,2,3,5,8,13,21, 34……
提示
输入输出格式
输入格式
一个正整数n,表示第n项
输出格式
一个正整数,第n项的值
输入输出样例
输入
5
输出
3
a = [0 for i in range(64)]
def fib(n):
if a[n] != 0:
return a[n]
if n == 1:
a[n] = 0
return 0
elif n == 2 or n == 3:
a[n] = 1
return 1
else:
a[n] = fib(n - 1) + fib(n - 2)
return a[n]
print(fib(int(input())))
该代码片段定义了一个名为`fib`的函数,用于计算斐波那契数列的第n项。使用了递归方法,并预先初始化了一个长度为64的数组`a`来存储计算结果,避免重复计算。输入一个正整数n后,函数会返回斐波那契数列的第n项。示例中给出了输入5得到输出3的情况。
2372





