关于递归
学习递归首先要知道递归的三大要素:
第一要素:明确这个函数要干什么
对于递归,很重要的就是,这个函数的功能是什么,要完成怎样的事情
第二要素:寻找递归结束的条件
所谓递归,就是在函数内部的代码中调用自己,如果没有截至条件,就会一直递归下去,像个无底洞
第三要素:找出函数的等价关系式
第三要素就是,我们要不断缩小参数的范围,缩小之后,我们可以通过一些辅助的变量或者操作,使原函数的结果不变。
例如:算n的阶乘
function fn(n){
if(n<=2){
return { n}
}
return fn(n-1)*n
}
案例1:斐波那契数列
斐波那契数列的是这样一个数列:1、1、2、3、5、8、13、21、34....,即第一项 f(1) = 1,第二项 f(2) = 1.....,第 n 项目为 f(n) = f(n-1) + f(n-2)。求第 n 项的值是多少。
int f(int n){
// 1.先写递归结束条件
if(n <= 2){
return 1;
}
// 2.接着写等价关系式
return f(n-1) + f(n - 2);
}

浙公网安备 33010602011771号