首页 > 编程知识 正文

JavaScript 递归函数多个案例分析小白一看就懂,指数函数案例分析

时间:2023-05-03 19:27:45 阅读:181520 作者:3223

文章目录一、递归函数是递归终点二、递归情况1、递归合计2、递归求阶乘3、递归求最大公约数4、递归求斐波那契数列

一、递归函数是什么递归函数的一种应用方法3358www.Sina.com/:逐层进去3358www.Sina.com/:逐层回来把一个事件分成几件事递归是一个自己呼叫自己在一个函数内部,一个函数调用了自己。 循环递归的终点在到达设定的终点时返回,在到达未使用return设定的终点时死循环注意://以下代码在最简单的递归函数//函数内部调用自己,函数执行循环往复无法停止funccccom (fn );

递归谨慎使用。 循环可以解决的事情,就不要使用递归

二、递归情况1 .递归总需求:求1至5之和(15 )1.首先计算1 )2(32 ),计算3 )3)6) 104 ),再计算10 )5) 155。 在结束递归函数写入之前,结束条件(为了不出现"死递归" )与目标结束条件functionsum (n ) console.log (add (1); //1重新写入不满足条件时,我们的递归处理functionadd(n ) /被传递的是在1//n==5时结束if(n==5)。 (else(/不满足条件时,当前数字比自己大1的数字returnnadd(n1 ); }console.log(add(1); //15这样functionadd(n ) ) /被传递的时间点为5//n==1时,if(n==1) {return 1; (else(/不满足条件时,当前数字为比自己小1的数字returnnadd(n-1 ); }console.log(add(5); //15 2.用正整数递归求阶乘的阶乘(factorial )是其数量以下所有正整数的乘积,0的阶乘为1。 自然数n的阶乘写成n! 我想知道

例:求3的阶乘(3*2*1) 3的阶乘==3 * 2的阶乘=2 * 1的阶乘=1的阶乘,在1从上往下传递的过程中从下往上的过程中functionfn(n ) )//n是你求的终点if (n (fn ) 3; //6代码分析第一次: n=3,if(n==1)不成立return 3 * fn(2)2(fn )3) fn )2)第二次: n=2,if(n==1) return2*fn(1

如果数a能被数b整除,则a称为b的倍数,写递归先写停 return

约数和倍数都表示一个整数与另一个整数的关系,不能单独存在。 16只能说是某个数的倍数,2只能说是某个数的约数,孤立起来16不能说是倍数,2不能说是约数。

在需求分析中求最大公约数时,采用辗转相除法先确定终点。=a % b===0=b最大公约数未达到终点时:=计算相对较小的数字,计算两个数字的馀数和代码functionfn(a,b ) (/保证abif(ab ) ) {var tmp=a ); a=b; b=tmp; //设置终点if (a % b==0) ) {返回b; (/)未到达终点的返回fn (b,a % b ); } console.log (fn (2,4 ); //2代码解析第1次: a=2,b=4,if(ab )成立a=4,b=2,if ) a%b==0)成立returnb )成立b=2)返回结果,递归4 .递归地求出斐波那契数列

1 1 2 3 5 8 13 21 34 55 …

这个数列从第三项开始,各项等于前两项之和

需求分析=第1位和第2位从固定的1=3位开始依次确定前2位的和=确定终点=n意味着当要求什么位=n为1或2时,要求第1位或第2位=要求未到达终点前=n位,实际上是n-1和n-2位的和}console.log(fn(10 ); //55

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。