1. 程式人生 > >JS函數遞歸

JS函數遞歸

cti turn console n! word span function font 小兔子

一、知識說明

function fun()
{
    // 自己調用自己,稱為遞歸調用
    fun();
    console.log("m2");
}
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函數遞歸