zoukankan      html  css  js  c++  java
  • 递归

    递归即自己调用自己,称为递归调用

    解决递归问题的步骤:

    1. 假设递归函数已经写好

    2. 寻找递推关系

    3. 将递推关系的结构转换为递归体

    4. 将临界条件加入到递归体中

    例1:求阶乘

    function fn(n) {
        if(n===1) {
            return 1;
        }
        return n*fn(n-1);
    }
    console.log(fn(3));

    例2: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    思路:假设第一次跳上1级,那么就有f(n-1)种跳法,第一次跳2级,那么就有f(n-2)中跳法。所以总共就有f(n-1)+f(n-2)种。

    function jumpFloor(number){
        if(number<=2){
            return number;
        }
        return jumpFloor(number-1)+jumpFloor(number-2);
    }

    例3:兔子生兔子--从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?

    思路:1,1,2,3,5...分析数据可得f(n)=f(n-1)+f(n-2)

    function born(n) {
        if(n < 3) {
            return n;
        }
        return born(n-2)+born(n-1)
    }
  • 相关阅读:
    Pandas数据分析 (三)
    Pandas数据分析 (二)
    Pandas数据分析 (一)
    Django后台应用管理名称修改
    Jupyter Notebooks 配置
    Hadoop完全分布式搭建流程
    Java学习笔记(五)
    微信小程序学习笔记(一)
    redis windows版安装
    Linux计划任务
  • 原文地址:https://www.cnblogs.com/PeriHe/p/8856893.html
Copyright © 2011-2022 走看看