编程|计算机编程必备技巧——使用递归( 二 )


如factorial(5)记作5! , 其定义为5!= 5 x 4 x 3 x 2 x 1 。 下面是递归函数阶乘的代码!
下面以一幅图来讲解递归调用栈的原理 , 详细分析fact(3)调用栈是如何变化的 。

第一次调用
第二次调用
返回
2.3 温馨提示
使用栈虽然很方便 , 但是也有很大代价:如果要存储信息可能需要大量内存 , 每个函数调用都将占用内存 , 如果栈摞的很高必将
导致计算机存储大量函数调用的信息 。 这个时候怎么办呢?
有两种解决方案:
1、使用循环
2、使用尾递归(这个我也不懂是啥 , 书上就是这么写的 , 并非所有编程语言都支持尾递归)


推荐阅读