ホームページ  >  記事  >  ウェブフロントエンド  >  関数メソッドを再帰的に呼び出す

関数メソッドを再帰的に呼び出す

一个新手
一个新手オリジナル
2017-09-21 09:54:501731ブラウズ

再帰呼び出し (---フィボナッチ数列)

再帰: 関数内で自分自身を再度呼び出します。

効率: この呼び出しが終了する前に、次の呼び出しが開始されます。今度は、呼び出しはすべての呼び出しが完了するまで中断されます。その後、彼らは順番に戻ってきます。

それは数学関数のような形です: f(n) の階乗

例: 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………….
既知: このシーケンスの最初のもの数字と 2 番目の数字は両方とも 1 です
3 番目の数字から始めて、各数字は前の 2 つの数字の合計です

質問: 関数を使用して、次のシーケンス値の 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。