1. 通常の再帰実装一般的な再帰公式、fact(n) = n * fat(n-1) に従って、階乗計算コードを簡単に記述できます。
通常の再帰実装の利点は、コードが比較的簡潔であり、一般的な公式と同じ処理なのでコードが理解しやすいことです。欠点は、頻繁に自分自身を呼び出す必要があるため、大量のプッシュおよびポップ操作が必要となり、全体的な計算効率が高くないことです。
関数ファクト(int $n): int { if ($n == 0) { 1を返します。 } $n * ファクト($n - 1) を返します。 }
2. 通常のループの実装には動的プログラミングの風味がありますが、中間状態変数の使用頻度が低いため、追加の記憶域は必要ありません。
そのため、一般的な動的計画法アルゴリズムよりも単純です。通常の再帰法はトップダウン (n から 1) の計算プロセスですが、通常のループはボトムアップの計算です。
関数ファクト(int $n): int { $結果 = 1; $num = 1; while ($num <= $n) { $result = $result * $num; $num = $num + 1; } $result を返します。 }
以上がphpでのn階乗の実装方法でした。皆さんの参考になれば幸いです。