JS函数递归案例

JS函数递归案例

在学习案例前先了解下JavaScript中函数的用法有哪些。
1.函数的概念:函数是封装了一段可被重复调用执行的代码块。
2.常用的声明方式(字面量创建)为:
function 函数名(){
 代码块
}
调用方式为:
函数名();
3.函数的参数分为形参、实参两种,形参是用来函数定义是设接收调用传入,实参是用来函数调用时传入小括号里面的真实数据。
4.函数的返回值:return 返回值;

之前在循环的案例中例子中利用for循环实现斐波拉契数列1、1、2、3、5…(第三项开始,前两项和等于第三项);代码逻辑是将第二项数先赋值给一个临时变量,第一二项相加数(作为下一轮的第二项),将临时变量赋值给这一轮的前一个数(作为下一轮的第一项)。具体代码如下:

/*3.求Fibonacci数列40个数.这个数列特点为,第1,2两个数为1,1,从第三个数开始,
 该数是前面两个数的和.即1,1,2,3,5,8,13,21…..*/
    var a = 0,
      b = 1;
    for (var i = 0; i < 40; i++) {
    
    
      c = a; //上一个a  0  1  1
      a = a + b; //    1  1  2
      b = c; //        0  1  1
      document.write((i + 1) + ":" + a + "<br/>");
    }

在函数中,递归的用法是直接或间接的调用自身。
斐波那契算法:从第三项开始,值等于前两项之和:1、1、2、3、5、8、13、18…可以用以下表达式表示,show为函数名。
show(n)=show(n-1)+show(n-2);

	var n = Number(prompt("请输入斐波拉契数列个数"));//接收用户输入的要显示的斐波拉契数列
    function show(n) {
    
    
      if (n == 1 || n == 2) {
    
    //一二项返回1
        return 1;
      }
      return show(n - 2) + show(n - 1);//三项项之后返回前两项的和
    }
    for (var i = 1; i <= n; i++) {
    
    
      console.log(show(i));//循环输出没一项的值
    }

例如斐波拉契数列第五项的运行栈的执行顺序如下
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yun_shuo/article/details/112970446
今日推荐