由于计算机栈的内存有限,而函数递归会调用到栈,所以函数的递归深度有限
用以下的代码可以求出在本机最大递归深度,用二分法测出来的。
python和c++差这么多的原因可能是编译器分配的栈内存不同:
栈的内存可以自己调整:
Python:
def get_dep(num):
if num == 1:
return 1
else:
return num * get_dep(num-1)
本文探讨了计算机中函数递归深度的限制,由于栈内存的有限性,递归调用存在上限。通过使用二分法的代码示例,分别展示了Python和C++在求最大递归深度时的差异,这可能源于编译器分配的栈内存大小不同。读者可以了解到如何调整栈内存以及不同编程语言在递归上的表现。
由于计算机栈的内存有限,而函数递归会调用到栈,所以函数的递归深度有限
用以下的代码可以求出在本机最大递归深度,用二分法测出来的。
python和c++差这么多的原因可能是编译器分配的栈内存不同:
栈的内存可以自己调整:
Python:
def get_dep(num):
if num == 1:
return 1
else:
return num * get_dep(num-1)

被折叠的 条评论
为什么被折叠?