基本思想
递归就是将一个大问题分解成 n 个相似的小问题,然后不断地调用自身去解决这些小问题,从而求出结果。
实践
汉诺塔
介绍
- 塔的设备包括三根柱子和一套直径各不相同的空心圆盘。
- 开始时源柱子上的所有圆盘都按照较小的放在较大的圆盘之上的顺序堆叠。
- 目标是通过每一次移动一个圆盘到另一根柱子上,最终将一堆圆盘移动到目标柱子上,过程中不可以将大圆盘放置在较小圆盘之上。
代码示例:
1 | ;(function(){ |
output
1 | Move disc 1 from 源柱子 to 辅助柱子 |
阶乘
数学公式:n! = n * (n-1) * ... * 2 * 1
代码示例
1 | ;(function(){ |
output
1 | 10 的阶乘是 3628800 |