何时使用递归
一、算法说明
递归来源于数学中的归纳法,归纳法是数学里的一种证明方法,它通常有以下两个步骤:
- 证明当 n 等于某一个值(通常是限定范围内的第一个值)时命题成立;
- 假设当 n = m 时命题成立,证明当 n = m + 1 时命题也成立。
数学中的归纳法由已知推向未知由前推向后,而在编程中通常是给定 n 的值(如 n = m)求结果,这与数学中的归纳法在过程上有些不同,多了一个回推的过程,通常是先由后向前,再由前向后(并不都是这样)。假定 n >= 1,并且 n = 1 时的结果已知,步骤如下:
- 要想求得 n = m 时的结果,必须知道 n = m - 1 时的结果,要想知道 n = m - 1 时的结果,必须知道 n = m - 2 时的结果,如此反复直到 n = 1(此时结果已知),此过程即由后向前;