JavaScript递归求和的方法


这篇“JavaScript递归求和的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript递归求和的方法”文章吧。我们先来看一下递归(recursion)的定义:递归是一种解决问题的有效方法,在递归过程中,函数将自身作为子例程调用。
简单说程序调用自身的编程技巧叫递归。递归的思想是把一个大型复杂问题层层转化为一个与原问题规模更小的问题,问题被拆解成子问题后,递归调用继续进行,直到子问题无需进一步递归就可以解决的地步为止。使用递归需要避免出现死循环,为了确保递归正确工作,递归程序应该包含2个属性:基本情况(bottom cases),基本情况用于保证程序调用及时返回,不在继续递归,保证了程序可终止。递推关系(recurrentce relation),可将所有其他情况拆分到基本案例。函数中自己调用自己就是递归,切记要有终止条件,不然进入死循环执行顺序5+sum(n-1)
5+4+sum(n-1)
5+4+3+sum(n-1)
5+4+3+2sum(n-1)
5+4+3+2+1执行顺序1+sum(2,3,4,5)
1+2+sum(3,4,5)
1+2+3(4,5)
1+2+3+4+sum(5)
1+2+3+4+5
1+2+3+9
1+2+12
1+14
15使用递归转树 要知道根的pid是什么值才能进行下一步操作,作为起点。执行顺序规则 下面三个柱子分别设为 a 、b、 c、 目标把a中的所有盘子分别从大到小依次放到c柱子中,每次只能移动一个盘子实现思路:将n-1个盘子从a挪到b将n盘子从a挪到c将n-1个盘子从b挪到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===>c3.第三行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递归求和的方法”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注开发云行 香港云主机业资讯频道。

相关推荐: 电脑没插U盘却显示U盘图标怎么解决

这篇文章主要介绍了电脑没插U盘却显示U盘图标怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇电脑没插U盘却显示U盘图标怎么解决文章都会有所收获,下面我们一起来看看吧。1、按 Win+ R 组合键,打开运行,并输入“reged…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/17 18:08
下一篇 07/17 18:08

相关推荐