1. Gewöhnliche rekursive Implementierung: Gemäß der allgemeinen rekursiven Formel fact(n) = n * fact(n-1) ist es einfach, den Fakultätsberechnungscode zu schreiben.
Der Vorteil einer gewöhnlichen rekursiven Implementierung besteht darin, dass der Code relativ prägnant ist und der gleiche Prozess wie bei der allgemeinen Formel das Verständnis des Codes erleichtert. Der Nachteil besteht darin, dass aufgrund der häufigen Selbstaufrufe eine große Anzahl von Push- und Pop-Vorgängen erforderlich ist und die Gesamtrecheneffizienz nicht hoch ist.
Funktion fact(int $n): int { if ($n == 0) { Rückgabe 1; } return $n * fact($n - 1); }
2. Die Implementierung einer gewöhnlichen Schleife hat einen gewissen Anklang an dynamischer Programmierung, aber aufgrund der geringen Häufigkeit der Verwendung von Zwischenzustandsvariablen ist kein zusätzlicher Speicherplatz erforderlich.
Es ist also einfacher als der allgemeine dynamische Programmieralgorithmus. Die gewöhnliche rekursive Methode ist ein Berechnungsprozess von oben nach unten (von n bis 1), während die gewöhnliche Schleife eine Berechnung von unten nach oben ist.
Funktion fact(int $n): int { $result = 1; $num = 1; while ($num <= $n) { $result = $result * $num; $num = $num + 1; } $result zurückgeben; }
Das Obige ist die Implementierungsmethode von n-Fakultät in PHP. Ich hoffe, dass sie für alle hilfreich ist.