【发布时间】:2016-05-20 14:24:54
【问题描述】:
在 Python 中这个斐波那契练习的最佳答案是什么?
http://www.scipy-lectures.org/intro/language/functions.html#exercises
练习:斐波那契数列
编写一个函数,显示斐波那契的第 n 个第一项 序列,定义:
u0 = 1; u1 = 1
u(n+2) = u(n+1) + un
如果这只是询问斐波那契代码,我会这样写:
def fibo_R(n):
if n == 1 or n == 2:
return 1
return fibo_R(n-1) + fibo_R(n-2)
print(fibo_R(6))
... 但是,在这个练习中,初始条件都是 1 和 1,并且计算正朝着正方向 (+)。我不知道如何设置结束条件。我已经搜索了答案,但我找不到任何答案。你会怎么回答这个问题?
【问题讨论】:
-
在python主站有解决方案python.org
-
您编写了一个函数来仅获取第 n 个元素。他们要求第一个 n,因此当您可以在之前的结果的基础上构建时,您将重复计算每个元素的大量工作。
-
一个词:记忆。
-
stackoverflow.com/questions/36948082/… 有一些关于定义斐波那契数列的不同方法的相关讨论。
标签: python recursion fibonacci