Python中的棘手递归

时间:2018-05-26 13:05:59

标签: python recursion

我正在尝试解决这个小练习,但不确定如何...

我需要在python中编写一个函数,一个递归函数,它获得一个自然数n作为输入,并返回一个包含n个元素的列表,其中每个元素i等于i的两个幂(例如, [1,4,9,16,...])

我的想法是设置停止规则,如果n == 1返回1,但我不知道如何做第二部分,我知道应该涉及f(n-1),但我不能想出去做那个列表就在那里。

谢谢!

2 个答案:

答案 0 :(得分:0)

list = []
def recursion(n):
    if n>=1:
        list.insert(0,n**2) //insert in the front of list
        return recursion(n-1)
    else:
        return list

例如,对于n = 5

1st - [25]

第二 - [16,25]

第3 - [9,16,25]

第4 - [4,9,16,25]

第5 - [1,4,9,16,25]

如果您愿意,可以在参数中传递列表,因此在这种情况下,代码为:

def recursion(n,list):
    if n>=1:
        list.insert(0,n**2) //insert in the front of list
        return recursion(n-1,list)
    else:
        return list

PS:我没有测试过,但我认为它会正常运行

答案 1 :(得分:0)

试试这个

def recur(a):
    if a<2:
        return [a]
    else:
        return recur(a-1)+[(a)**2]