Fibonacci用递归方法

时间:2015-10-27 23:06:59

标签: python

我正在尝试实现一个fibonacci函数,该函数应该作为输入3参数,r =输出元素的数量,'a'是起始编号,'b'是第二个数字。 FIB(R,A,B)

我做了以下事情,但出了点问题:

def fib(r,a,b):
    return [[(a,b),fib(i,b,a+b)] for i in range(r)]

谁能说我问题出在哪里并帮我解决?

1 个答案:

答案 0 :(得分:2)

您在列表解析中调用该函数,使列表递归。此外,您还缺少函数终止的条件。

请改为尝试:

def fib(r,a,b):
    return [a] + fib(r-1,b,a+b) if r>0 else []

请注意,这是非常低效的,不应该实际使用。