我正在尝试实现一个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)]
谁能说我问题出在哪里并帮我解决?
答案 0 :(得分:2)
您在列表解析中调用该函数,使列表递归。此外,您还缺少函数终止的条件。
请改为尝试:
def fib(r,a,b):
return [a] + fib(r-1,b,a+b) if r>0 else []
请注意,这是非常低效的,不应该实际使用。