| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> JavaScript递归 经典案例题详解 -> 正文阅读 |
|
[JavaScript知识库]JavaScript递归 经典案例题详解 |
函数中自己调用自己就是递归,切记要有终止条件,不然进入死循环? ? ? 一、求和(1)数字求和
?执行顺序
(2)数组求和
执行顺序
二、数据转树
使用递归转树 要知道根的pid是什么值才能进行下一步操作,作为起点。 执行顺序 三、汉诺塔规则 下面三个柱子分别设为 a 、b、 c、 目标把a中的所有盘子分别从大到小依次放到c柱子中,每次只能移动一个盘子??汉诺塔游戏 实现思路:
把? num作为盘子的数量? start 作为a盘子? middle作为b盘子? ?end作为c盘子?? 例如 2个盘子的执行顺序 1.第一行 把2带进去 num>0? 执行第一个函数fn(2-1,start,end,middle) 又去执行了fn(1-1,start,end,middle) 发现num不大于0不仅如此if条件,回过来看 fn(2-1,start,end,middle) ,输出 console.log(a===>b)? 2.第二行console.log(start+'====>'+end);? ?直接输出 a===>c 3.第三行?fn(2-1,middle,start,end)? 执行 console.log(b===>c)? 下次再去执行? fn(1-1,middle,start,end) 进入不了循环执行完毕 执行顺序有点抽象,实在不理解就按照最简单的思路去做?fn(num, start, middle, end) ,平常我们玩游戏怎么玩就去怎么做,初始图 fn(num-1,start,middle,end)? 把 第二个的参数位置作为要移动的盘子 把第四个的参数位置作为移动目标? ??每次看图把这个公式带进去? 第一步? ?fn(num-1,start,end,middle)? ?例如两个盘子 肯定是先把a-1放到b上?? 第二步 把盘子a放c上直接输出 console.log('a===>c') 第三步 把盘子b放c上??fn(num-1,middle,start,end,)? 四、斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、
除了前两个 每次都是前一个数和前两个数的和相加等于第三个数? 例如数字5举例? 前一项是3? 前两项是2? ? 3+2=5? ? |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/22 23:42:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |