from functools import lru_cache
@lru_cache(maxsize=1000)
def recursiveFunc(x):
if x == 1:
return 1
elif x > 1 :
return recursiveFunc(x) + recursiveFunc(x+1) #This is the part i'm having doubts about.
for x in range(1, 101):
print(x, ":", recursiveFunc(x))
这个函数应该使用递归生成从1到100的连续数字。你知道吗
在这里,我会尽力为你澄清:)
编写一个列出从1到n的数字的函数很简单。 如果我们试着运行这个函数
它会打印出1,然后是2,3。。。。但永远不会停止。你知道吗
为了解决这个问题,我们添加了第二个参数
当函数经过n(在本例中为100)时,它将转义函数
如果您想返回系列而不是仅仅打印出来,您可以这样做:
那么输出就是
你的问题是,你必须很好地学习所有的递归故事,这需要时间。。。你必须把程序在每一步中执行的内容形象化。我的建议是在每次调用函数时首先绘制堆栈缓冲区
您的问题的解决方案是:
为什么你的手机坏了?因为当函数调用return时,return启动新函数recursiveFunc(x)。。。但和以前一样!所以有一个无限循环。 此外,如果你加上像recursiveFunc(x+1)和你传递的x是正的,你将永远不会进行比较x==0,因为x是不断增长的调用。你知道吗
相关问题 更多 >
编程相关推荐