递归函数定义简单,逻辑清晰,可以使用很少的代码实现较为复杂的功能。但是我们都知道,对于计算机来说,函数的调用都是通过栈(stack)来实现的。每当进行一次函数调用,栈就会增加一层栈帧,以实现函数跳转;每当函数调用结束返回时,栈就相应地减少一层栈帧。如果我们进行大量的递归调用,就会耗尽栈的有限的资源空间,造成栈溢出。 递归函数定义简单,逻辑清晰,可以使用很少的代码实现较为复杂的功能。但是我们都知道,对于
递归函数定义简单,逻辑清晰,可以使用很少的代码实现较为复杂的功能。但是我们都知道,对于计算机来说,函数的调用都是通过栈(stack)来实现的。每当进行一次函数调用,栈就会增加一层栈帧,以实现函数跳转;每当函数调用结束返回时,栈就相应地减少一层栈帧。如果我们进行大量的递归调用,就会耗尽栈的有限的资源空间,造成栈溢出。 递归函数定义简单,逻辑清晰,可以使用很少的代码实现较为复杂的功能。但是我们都知道,对于