Javascript-什么是遞歸?


遞歸?

  程序調用自身的編程技巧就稱之為遞歸(recursion),就是再運行的過程中調用自己,本質上就是循環.

構成遞歸的條件有:

  Ⅰ.不能無限制的調用本身,必須有一個出口,化為簡單的狀況處理(非遞歸狀況).

  Ⅱ.子問題和原始問題為同樣的事情,且子問題更為簡單.

 

由於遞歸是函數本身一層層壓棧,導致先入棧的不能出棧,空間占滿以后就會造成堆棧溢出的現象.

 

例如斐波那契數列在數學上就被以遞歸的方法定義:

  數列:1,1,2,3,5,8,13,21,34,55,89......

  這個數列從第三項開始,每一項都等於前兩項之和.

  遞歸的方法定義:F(0)=1,F(1)=1,F(n)=F(n-1)+F(n-2)    (n>2, n∈N*)

 

求斐波那契數!
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var n = Number(prompt('請輸入所求斐波那契數的某項'))
        function feb (n) {
          // 第n項應該是n-1項加上n-2項的和
          // 遞歸的出口應該在第一項和第二項值為1
          if (n === 1 || n === 2) {
            return 1
          }
            return feb(n-1) + feb(n-2)
          
        }
        document.write('斐波那契數的第' + n + '項的值為:' + feb(n))
     
      </script>
</body>
</html>

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM