首頁 > web前端 > js教程 > 主體

遞歸呼叫函數方法

一个新手
發布: 2017-09-21 09:54:50
原創
1745 人瀏覽過

 遞歸呼叫 (---斐波那契數列)

    遞迴:在一個函數內部再一次呼叫自己;

    效率:在本次呼叫還未結束時,就開始了下次的調用,本次調用就會被掛起,直到所有的調用都完成之後,才會依序返回。

形狀如數學函數:f(n)的階乘

ex:   5!=5*4!  (5* 4*3*2*1)

4!=4*3!  (4*3*2*1)

3!=3*2!  (3*2*1)

2!=2*1!  ( 2*1)

1!=1;

F(n)! =n*f(n-1)!

#
<script>
	//计算数字n的阶乘 (if方法)
		function f(n){
			if(n==1){            //边界条件
				return 1;
			}else{               //没到边界条件
				return n*f(n-1);
			}
		}

	/*或者:return n==1 ? 1 : n*f(n-1); (三目运算方法)
		function f(n){
			var result = return n==1 ? 1 : n*f(n-1);
			return result;
		}
	*/
		//计算5的阶乘?
		function testF(){
			var result = f(5);
			console.log(result);
		}
		testF();
	</script>	
登入後複製

練習:

以下數列: 斐波那契數列
1,1,2,3,5,8,13 ,21,34,55……….
已知:此數列中的第一個數和第二個數都是1
##從第三個數字開始,每個數字都是前兩個數和

#問題:  用一個函數,求該數字列中第n個數字的值

<!doctype html>
<html lang="en">
 <head>
	 <meta charset="UTF-8">
     <title>Document</title>
	 <link rel="stylesheet" style="text/css" href="">
	 <style>
	 </style>
 </head>
 <body>
	<script>
	 function f(n){
			if(n==1 || n==2){
			  return 1;
			 }else{
			  return f(n-1)+f(n-2);
			 }
		}
		function testF(){
		var result=f(20);
		console.log(result);
		}
		testF();
	</script>	
 </body>
</html>
登入後複製

以上是遞歸呼叫函數方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板