type
status
date
slug
summary
tags
category
icon
password
1、递归概念
递归是指在函数定义中使用函数自身的过程。使用递归可以解决一些问题,尤其是那些可以被分解为较小重复子问题的问题。在递归函数中,函数在每一次调用中都会对自身进行调用,直到达到某个终止条件,然后逐步返回结果。
注意:函数的递归一定要有终止条件,否则会出现死循环,且终止条件必须在最后的
return
语句之前2、递归的使用
递归一般用于解决由众多相似的子问题组成的一个完整的问题,且一般是由结果向初始条件推算,也可以理解为从后向前。根据思路列出每个子问题的解法。
2.1、阶乘举例
这里用阶乘举例,我们需要计算
10
的阶乘,计算过程是1*2*3*4*5*6*7*8*9*10
。而这其中每个子问题就是一个数与前一个数的积。用公式表达出来就是 f(n) * f(n-1)
。用代码写出来就是:此时就已经完成了一个递归函数的书写,但是我们还没有写终止条件,程序会进入死循环。现在分析以下要求,我们要求
10
的阶乘,阶乘应该进行到1
停止,所以我们的终止条件是 n == 1
时终止。代码如下:2.2、小白上楼梯举例
假设有n个台阶,一次只能上一个台阶或者两个台阶,请问走到第n个有多少种走法。
同样的我们分析,每一个只能上一个或两个,我们可以得出走到第n个台阶的方法是前两个走法的和,即
f(n) = f(n-1) + f(n-2)
。终止条件是最后一个或两个台阶时终止。代码如下:- 作者:Rainvice
- 链接:https://rainvice.com/article/2628538d-b999-417a-85c9-f7afca1edfcd
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。