美文网首页
初识递归

初识递归

作者: lin_lilili | 来源:发表于2020-10-02 15:15 被阅读0次

1 什么是递归?

  • 先递进,再回归.

2 递归三大要素

  • 明确函数想要什么?
  • 寻找递归结束条件.
  • 找出函数的等价关系式(规律).

3 实例

3.1 阶乘

  • 在数学中,正整数的阶乘是所有小于及等于该数的正整数的积
  • 1! = 1 递归结束条件
  • 2! = 2*1 ---> 2! = 2 * 1! 找出函数的等价关系式
  • 3! = 3*2*1 ---> 3! = 3 * 2! 找出函数的等价关系式
  • 4! = 4*3*2*1 ---> 4! = 4 * 3! 找出函数的等价关系式
            function factorial(n) {
                if (n === 1) {
                    return 1;
                }
                return n * factorial(n - 1);
            }

3.2 斐波那契数列

  • 指的是这样一个数列:0、1、1、2、3、5、8、13、21、34...
  • 从第三个数开始,等于前2个数的和.
  • f(0) =0,
  • f(1)=1,
  • f(2)=1 ---> f(0)+f(1)
  • f(3)=2, ---> f(1)+f(2)
  • f(4)=3, ---> f(2)+f(3)
  • f(5)=5 ---> f(3)+f(4)
            function Fibonacci(n) {
                if (n === 0) {
                    return 0;
                }
                if (n === 1 || n === 2) {
                    return 1;
                }
                return Fibonacci(n - 1) + Fibonacci(n - 2);
            }

3.3 小青蛙跳台阶

  • 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
  • n为台阶总数
  • f(1)=1 台阶为1时,只有1种跳法
  • f(2)=2 台阶为2时,只有2种跳法
  • f(3)拆解成 f(2)+f(1) --->3
  • f(4)= f(3)+f(2) --->5
  • 我们发现这就是斐波那契数列
            function jump(n) {
                if(n<=2){
                  return n;
                }
                return jump(n - 1) + jump(n - 2);
            }

本文资源来源
对于递归有没有什么好的理解方法? - 方应杭的回答 - 知乎
https://www.zhihu.com/question/31412436/answer/738989709
对于递归有没有什么好的理解方法? - 帅地的回答 - 知乎
https://www.zhihu.com/question/31412436/answer/683820765

相关文章

  • 初识递归

    1 什么是递归? 先递进,再回归. 2 递归三大要素 明确函数想要什么? 寻找递归结束条件. 找出函数的等价关系式...

  • 数据结构第二季 Day13 递归 、斐波那契数列

    一、初识递归 1、递归的定义?递归是算法思想或者算法策略吗? 递归的定义:函数(方法)直接或者间接调用自身。 严格...

  • 递归1-初识递归

    I. 递归简论 递归的概念当一个函数用它自己来定义时就称为是递归(recursive)的。 递归的基本法则当编写递...

  • 13_Python递归函数_全栈开发学习笔记

    1. 初识递归 什么是递归:在函数中调用自身函数最大递归深度默认是997/998 —— 是python从内存角度出...

  • C 初识递归

    一般定义(来自网络):在调用一个函数的过程中又出现直接或间接地调用该函数本身,就是函数的递调用。 为求解规模为N的...

  • 初识C语言五:函数,宏,递归

    五:函数 C程序由函数组成,所有的C程序都有且仅有一个main函数,并且main函数是每段代码的入口,程序从mai...

  • 二叉树遍历

    先序遍历——[递归、非递归] 中序遍历——[递归、非递归] 后序遍历——[递归、非递归] 层次遍历——[递归、非递归]

  • 二叉树的遍历

    先序递归: 非递归: 中序递归: 非递归: 后序递归: 非递归 层次遍历

  • 二叉树的前序、中序、后序遍历(递归、非递归)

    二叉树 前序 递归: 非递归: 中序 递归: 非递归: 层序 递归: 非递归:

  • Python网络爬虫的Scrapy实战一

    任务 使用递归抓取简书用户信息 解释:获取到一个初识的用户url,我们需要对其进行请求,解析出这个用户的关注的和粉...

网友评论

      本文标题:初识递归

      本文链接:https://www.haomeiwen.com/subject/toebuktx.html