遞歸的簡要介紹和理解
阿新 • • 發佈:2017-06-07
oct char html col charset filo type ctype doctype
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 8 <body> 9 <script> 10 /* 11 * 遞歸 12 * 函數自己(內部)調用自己,遞歸 13 * 14 * 遞歸,本質上就是一個循環 15 * */ 16 17 // function fn1() {18 // fn1(); 19 // } 20 // fn1(); 21 22 // function fn() { 23 // setTimeout(function () { 24 // console.log(1); 25 // fn(); 26 // }, 100); 27 // } 28 // fn(); 29 30 // function fn1() { 31 // console.log(1); 32 // fn2(); 33 // } 34 // 35 // function fn2() {36 // console.log(2); 37 // fn1(); 38 // } 39 // 40 // fn1(); 41 </script> 42 </body> 43 </html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
/*
* 階乘
* */
function factorial(n) {
if (n == 1) {
return 1;
}
return n * factorial(n-1);
}
/*
* 5 * factorial(4)
* 5 * 4 * factorial(3)
* 5 * 4 * 3 * factorial(2)
* 5 * 4 * 3 * 2 * factorial(1)
* 5 * 4 * 3 * 2 * 1
*
* 先調用的:factorial(5)
* 最後一次調用的:factorial(1)
*
* factorial(1)先執行完,factorial(5)是最後一次執行完成的
*
* 先進後出 -> FILO -> FirstInLastOut -> 棧
* 先進先出 -> FIFO -> FirstInFirstOut -> 隊列
* */
console.log( factorial(5) );
</script>
</body>
</html>
遞歸的簡要介紹和理解