我正在尝试解决这个小练习,但不确定如何...
我需要在python中编写一个函数,一个递归函数,它获得一个自然数n作为输入,并返回一个包含n个元素的列表,其中每个元素i等于i的两个幂(例如, [1,4,9,16,...])
我的想法是设置停止规则,如果n == 1返回1,但我不知道如何做第二部分,我知道应该涉及f(n-1),但我不能想出去做那个列表就在那里。
谢谢!
答案 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]