gpt4 book ai didi

python - 在python中制作递归函数

转载 作者:行者123 更新时间:2023-11-28 20:24:31 24 4
gpt4 key购买 nike

这是一道作业题。我尝试得到一个递归函数:

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]

最佳答案

目前已提出的解决方案(使用额外参数将列表向上传递到递归链)的一个替代解决方案是在您从递归返回时构建最终列表。这不是非常有效,因为连接列表需要复制它们,但它会起作用:

def problem_a(n):
if n == 1:
return [n]
elif n % 2 == 0:
return [n] + problem_a(n // 2)
else:
return [n] + problem_a(3*n + 1)

关于python - 在python中制作递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17146340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com