递归算法思想
递归算法(Recursion)就是在程序中不断反复调用自身来达到求解问题的目的。(这就要求待求解的问题能够分解为相同问题的一个子问题。)
注意:在递归函数中,必须使用 if
语句强制函数在未执行递归前返回。
分类
- 直接递归:在函数中调用函数本身。
- 间接递归:间接调用一个函数;如
fun_a
调用fun_b
,fun_b
又调用fun_a
。
示例
阶乘
阶乘,就是从 1 到指定数之间的所有自然数相乘的结果;
n! = n x (n - 1) x (n - 2) x ... x 2 x 1
。推导:n! = n x (n - 1)!
。
示例代码
1 |
|