📅  最后修改于: 2023-12-03 14:55:24.475000             🧑  作者: Mango
递归是一种算法或程序设计技巧,其中一个函数通过调用自身来解决问题。这意味着函数在调用时会将一部分计算留待后续完成并挂起,直到调用的函数完成并返回结果。
有限递归是指递归函数最终会停止并返回一个结果。下面是一个计算阶乘的有限递归函数示例:
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
此函数将递归调用,直到 n 等于 1 时停止。我们可以测试以下这个函数:
print(factorial(5)) # 120
因为递归函数会在每次调用时向下传递参数,因此有限递归需要维护一个比无限递归更小的调用栈。
无限递归通常是指递归函数没有条件用于判断是否终止。这可能导致递归没有限制地继续下去,最终导致栈溢出。下面是一个无限递归函数的示例:
def count(n):
print(n)
count(n + 1)
此函数递归调用自身,并无限打印 n 的值。我们可以测试一下这个函数:
count(1)
运行上述程序将导致程序不断打印值,直到出现栈溢出错误。
有限递归是一种有用的算法,可以用于解决许多问题。但无限递归很少有实用价值,通常会导致栈溢出错误。因此,请确保在递归实现中使用适当的条件来终止函数调用。