JS學習筆記 函式拓展(遞迴函式)

2021-10-08 05:15:31 字數 2888 閱讀 7608

學習筆記鏈結

6、物件基礎知識

7、陣列、氣泡排序、選擇排序

8、字串的js方法

9、math(數學)物件及內建方法

我們先來看兩個函式:

1)簡單的乙個死迴圈遞迴函式:

//這個函式不是真正意義上的遞迴函式,因為沒有結束條件,無法停止退出,所以會一直在控制台列印出hello,

//這樣的死迴圈遞迴最後會導致瀏覽器記憶體溢位宕機

function fn()

2)常用的遞迴函式格式:

//計算n到i之間的數之和(n在對以上兩個函式有一定印象後我們再來說什麼是遞迴函式,遞迴函式是一類能自我呼叫的函式,類似迴圈結構,能做一些重複的運算,在遞迴函式中最重要的是結束條件和呼叫自身,當我們知道如何去設定結束條件以及如何再次呼叫函式時就掌握遞迴函式了。

讓我們再來看看乙個遞迴函式具體的執行過程:

//計算n到i之間的數之和(n以上用乙個詳細的遞迴函式執行為例講解了遞迴函式的原理想必大家對遞迴也有了一定的理解

遞迴函式需要一定的練習量才能徹底掌握,以下為我老師所分享的練習題及解題思路,希望能幫助大家更好的理解到遞迴函式。

解題思路:

/*

分析思路1:

==>我要書寫乙個函式叫做sum

==>這個函式有形參n,呼叫的時候:sum(n)

==>我這個sum函式的功能是計算任意乙個數1到n的累加和

==>在思路1裡面,寫sum(5) = 5+4+3+2+1

==>也就是說如果你寫sum(5),就是1到5,如果你寫sum(8),就是1到8

==>假設這個函式已經寫完了

==>如果要計算1-100,我可以這麼寫:100+sum(99)

==>如果要計算1-99,我可以寫成:99+sum(98)

==>結論,如果要計算1-100:100+99+98+.....+2+sum(1);

==>結束條件就是n=1,sum(1) = 1

*///思路1的**實現:

function sum(n)else

} var result = sum(100);

console.log(result)

/*分析思路2:

==>我要書寫乙個函式叫做sum

==>這個函式有形參n,呼叫的時候:sum(n)

==>我這sum函式的功能是計算任意乙個數到100的累加和

==>如果我寫sum(90),我計算的是90+91+92+93+94+95+...100

==>如果我寫sum(91),我計算的是+91+92+93+94+95+...100

==>我有以下結論:sum(90) = sum(91)+90

==>我有以下結論:sum(91) = 91+sum(92)

==>我有以下結論:sum(1) = 1 + sum(2)

==>我有以下結論:sum(100) = 100;

*///思路2的**實現:

function sum(n)else

} var result = sum(1);

console.log(result)

斐波那契數列(fibonacci sequence),又稱**分割數列、

因數學家列昂納多·斐波那契(leonardoda fibonacci)以兔子繁殖為例子而引入,故又稱為「兔子數列」,

指的是這樣乙個數列:1、1、2、3、5、8、13、21、34、……在數學上,

斐波那契數列以如下被以遞推的方法定義:f(1)=1,f(2)=1, f(n)=f(n - 1)+f(n - 2)(n ≥ 3)

function fibonacci(n)

if(n==2)

//n = 3 :return fibonacci(2)+fibonacci(1)

//n = 4 :return fibonacci(3)+fibonacci(2)

return fibonacci(n-1)+fibonacci(n-2);

}console.log(fibonacci(6))

/*

解題思路

==>我要寫乙個函式,這個函式叫ji(n)

==>這個函式的功能是計算n!,並把結果返回

==>ji(1),就是求1的階乘,返回1 ,如果這個函式只計算1的階乘,功能可以實現

==>ji(2),就是求2的階乘,返回2*1, 就是2*ji(1),功能可以實現

==>ji(3),就是求3的階乘,返回3*2*1,就是3*ji(2),功能可以實現

==>ji(n),就是求n的階乘,返回n*ji(n-1),功能可以實現

*/

function ji(n)else

}console.log(ji(5))

js學習筆記——入門基礎知識總結

js學習筆記——入門基礎知識總結(資料型別與簡單運算)

js學習筆記——入門基礎知識總結(選擇語句)

js學習筆記——入門基礎知識總結(迴圈語句)

js學習筆記——基礎知識總結(函式)

js學習筆記——函式拓展(遞迴函式)

js學習筆記——基礎知識總結(物件)

js學習筆記——基礎知識總結(陣列)

js學習筆記——基礎知識總結(字串)

js學習筆記——js內建物件math(數學方法)

js函式遞迴

一 遞迴函式概念 自己呼叫自己。二 知識說明 function func func 三 函式 變數 用遞迴來求5的階乘 function func n return n func n 1 console.log func 5 三 函式 函式 斐波拉契題 兔子生兔子題目 從出生後第3個月起每個月都生一...

js 遞迴函式

定義 如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式。舉例說明 1.求n的階乘 n 1 x 2 x 3 x x n function factorial n return n factorial n 1 console.log factorial 5 factorial 5 5 factori...

js函式遞迴

一 知識說明 function fun fun 二 函式 變數 用遞迴 來求 5 的階乘 n n n 1 定義乙個函式,用於求 n 的階乘 function func n func n 1 因為傳遞的引數是 n 1,那麼就是求 n 1 的階乘 return n func n 1 console.lo...