【提问】斐波那契数列

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]