def test(n):
x = []
for i in range(1, n + 1):
if i == 1:
return 1
if i == 2:
return 1
if i >= 3:
return test(i - 1) + test(i - 2)
```css
``` x.append(test(i))
if n == 1:
return 1
if n == 2:
return 1
if n >= 3:
return test(n - 1) + test(n - 2)
print(test(5))
执行test(5)结果是1
(用i控制数列中的每项数字,将其放入f数组。n为第n项数字)希望最后,x数组存入前n项的数字,n现实第n项的数字。
优化:if 循环一般是if……elif……else ,不是if……if……if
既然是递归函数,你就不能再用for循环了,递归相当于进行了for循环。把循环去掉,直接判断n就行了
你用x列表+for循环就不要用递归循环了
for循环代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
def test(n):
x = []
for i in range(1, n + 1):
if i == 1:
x.append(1)
if i == 2:
x.append(1)
if i >= 3:
x.append(x[-1]+x[-2])
return x
print(test(5))
结果是前n项的数字组成的列表
[1, 1, 2, 3, 5]