关于递归

学习递归首先要知道递归的三大要素:

第一要素:明确这个函数要干什么

对于递归,很重要的就是,这个函数的功能是什么,要完成怎样的事情

第二要素:寻找递归结束的条件

所谓递归,就是在函数内部的代码中调用自己,如果没有截至条件,就会一直递归下去,像个无底洞

第三要素:找出函数的等价关系式

第三要素就是,我们要不断缩小参数的范围,缩小之后,我们可以通过一些辅助的变量或者操作,使原函数的结果不变。

例如:算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);
}

 

posted @ 2020-12-20 20:53  lilizifeng  阅读(78)  评论(0)    收藏  举报