这是一个家庭作业问题。我尝试得到一个递归函数:
def problem_a(n):
answer.append(n)
if n == 1:
return answer
elif n % 2 == 0:
answer.append(n/2)
else :
answer.append(n*3 + 1)
problem_a(n*3 + 1)
此代码显然不起作用,因为answer
未定义为列表。使用循环它可以工作,但我想创建一个递归函数。我可以只使用一个列表作为输入,但我想知道是否存在更优雅的东西。
problem_a(7)
应该作为输出:
[7, 22, 11, 34, 17, 52, 26, 13, 40 , 20, 10 ,5 ,16, 8, 4, 2, 1]