在前面一篇中, 已经看过许多直观的递归的例子, 在这篇里, 将分析两个经典的递归问题, 阶乘与菲波那契数列数列, 在此过程中, 还将对比递归与循环(迭代)间的异同, 探讨递归与内存中的栈的关系, 以及递归的效率等问题.
如无特别说明, 示例使用的是 Java, IDE 则为 Eclipse.
阶乘(factorial)
阶乘大家应该都很熟悉了. 下面是一些简单例子:
2!= 2×1=2
3!= 3×2×1=6
用一个简单的循环就可以把它写出来. 不过我们现在打算用递归来写.
摘要: 简要介绍了阶乘与菲波那契数列两个经典的递归例子, 并重点分析了递归与迭代的异同, 以及递归调用与栈之间的关系.
在前面一篇中, 已经看过许多直观的递归的例子, 在这篇里, 将分析两个经典的递归问题, 阶乘与菲波那契数列数列, 在此过程中, 还将对比递归与循环(迭代)间的异同, 探讨递归与内存中的栈的关系, 以及递归的效率等问题.
如无特别说明, 示例使用的是 Java, IDE 则为 Eclipse.
阶乘大家应该都很熟悉了. 下面是一些简单例子:
2!= 2×1=2
3!= 3×2×1=6
用一个简单的循环就可以把它写出来. 不过我们现在打算用递归来写.