函数递归,其实就是一个函数自己来调用自己 JS

shuke 2018-8-12 1467

一,比如这种递归一就是一死循环

function fun()
{
console.log("递归死循环");
return fun();
}
fun();

二、函数+变量

// 用递归 来求 5 的阶乘// n! = n * (n-1)!// 定义一个函数,用于求 n 的阶乘function func(n)
{
    if (n == 1)
    {
        return 1;
    }

    // func(n-1) 因为传递的参数是 n-1,那么就是求 (n-1) 的阶乘    return n * func(n-1);
}
console.log(     func(5)   );

三,函数+函数

/*斐波拉契题(兔子生兔子题目)--从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,
假如兔子都不死,问每个月的兔子对数为多少
// 产量分析:1, 1, 2, 3, 5, 8, 13, 21 。。。
// 第n个月的兔子总数  =  第n-1个月的兔子总数 + 第n-2个月的兔子总数
// 问题: 求任意月兔子的总数function func( n )*/
{
    if (n == 0 || n == 1)
    {
        return 1;
    }
    return func(n-1) + func(n-2);
}

var a = func(22);
console.log(a);


四,简单来实现,js 递归 数据 来输入一个NUMBER

function fun() {
    var num=parseInt(prompt("write number"))
    if(isNaN(num)){
        console.log("再次执行")
       return fun()
    }else {
        console.log(num)
        return num    }

}
var res=fun()
console.log(res)
document.write(res)


最新回复 (1)
全部楼主
  • shuke 2018-8-12
    2

    如果上面你觉得太繁琐:简单来使用函数嵌套也可以实现

    function fun() {
        var num=parseInt(prompt("write number"))
            if(isNaN(num)){
                fun()
                console.log("再次执行")
            }else {
                fun2(num)
            }
    }
     fun()
    function fun2(res) {
        console.log(res)
        document.write(str)
    }


返回