- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:最大公約数と最小公倍数の問題 php)
最大公約数と最小公倍数の問題 php
このQ&Aのポイント
- 最大公約数と最小公倍数を求める問題を解くための処理が理解できません。具体的には、return _gcd($b, $a % $b); の部分がわからないです。例えば、$bに6、$aに8が入っていた場合、この処理は何を返すのでしょうか?
- $bと$aを最大公約数を求めるために再帰的に渡す処理です。具体的には、$bには$aを、$aには$aを$bで割った余りを渡しています。
- この処理は、$bが0になるまで繰り返されます。最終的には、$bが0になると、$aが最大公約数となります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
まず、$a % $b は、 $aを$bで割った余りです。例えば、8 % 6 の結果は 2です。 そして、function _gcd のなかでは、 $bを$a に入れ替え, $aを$bで割った余りを$bとしながら、 $bが0になるまで、_gcdの呼び出しを繰り返しています。 このように、自分自身を呼び出すことを再帰的アルゴリズムというのですが、 このケースならば、whileループでも記載でき function _gcd($a, $b ) { while ( $b != 0 ) { $w = $b; //$b値を一旦確保 $b = $a % $b; //$aと$bで割った余りを$bへ代入 $a = $w; //剰余する前の$b値を$aへ代入 } return $a; } と書くこともできます。
お礼
ご丁寧に対応していただいて、ありがとうございます。 とても、分かりやすかったです。 親切にありがとうございます。