ホームページ  >  記事  >  バックエンド開発  >  phpの再帰。

phpの再帰。

WBOY
WBOYオリジナル
2016-06-23 14:01:45861ブラウズ

インターネットで PHP の再帰について読んだところ、マスターに再度尋ねたところ、再帰は自分自身を呼び出していると教えてもらいました。分かりませんでした。百度でハノイの塔問題を改めて読んだ。ハノイの塔が何であるかは知っていますが、再帰についてはまだ理解していません。シンプルでわかりやすい例を教えていただければ幸いです。 。 。


ディスカッションへの返信(解決策)

function f($n)  {     $out = -1;   if($n<0)       echo "输入不能是负数";   else if($n==0||$n==1)       $out=1;   else $out=f($n-1)*$n;     return $out;}echo f(3);

最も古典的な階乗例の例

function f($n)  {     $out = -1;   if($n<0)       echo "输入不能是负数";   else if($n==0||$n==1)       $out=1;   else $out=f($n-1)*$n;     return $out;}echo f(3);

最も古典的な階乗例のこれは良いです。 。 。これを明確に理解すると、iqだけでは足りないようです

f(3)関数に渡される最初のパラメータは3ですが、$out=f($n-1)*$n;まで実行すると、$に変わります。 out=f (3) = f(2)*3;f(2) はまだ結果を生成していないため、f 関数が再度呼び出され、今回は f(2) パラメーターが 2 になり、$out に対して再度実行されます。 =f($n-1) *$n; f(1) がこの関数を実行する場合は $out=f(2) = f(1)*2 になります。それ以外の場合は if($n==0||$n= =1 )このコード f(1) = 1; f(1) の結果がわかっているので、前の $out=f(2) = f(1)*2 = 1*1 =1;$out=f を返します。 ( 2) = f(1)*2 = 1*2; $out=f(3) = f(2)*3 = 2*3 結果は 6 になります

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