斐波那契数列的定义如下:
F(0) = 0, F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1...., 整个问题的规模一直不断的变小 , 直到达到递归停止条件为止 ;
3、递归内存开销
递归的内存开销分析 : 函数执行时 , 需要在栈内存 中 存储当前函数的
函数参数列表
函数返回值
函数局部变量...;
由于 递归 会消耗大量的栈内存空间 , 递归操作 能不用就不用 ;
递归第一层的 n , 与下面一层的 n 是不一样的 , 以 f(n) = f(n - 1) + 2 , f(1) = 1 为例进行递归调用为例..., f(1) = 1 , 开始逐层进行返回 , 每返回一层就会释放一层栈内存空间 ;
4、递归三要素
递归三要素 :
递归定义 : 分析函数的 参数 , 返回值 , 以及代表的含义 ;
递归拆解 :...递归定义 : 传入的 n 的含义是斐波那契数列的索引值,
// 返回值的含义是斐波那契数列的索引值对应的元素值
public int fib(int n) {
// 3.