Heim >Backend-Entwicklung >PHP-Problem >So berechnen Sie die Fakultät einer bestimmten Zahl n mit einem PHP-Programm
Im vorherigen Artikel „PHP-Loop-Lernen 9: Ermitteln des größten gemeinsamen Teilers zwischen zwei gegebenen Zahlen“ haben wir die Methode der Verwendung der while-Schleifenanweisung vorgestellt, um den größten gemeinsamen Teiler zwischen zwei gegebenen ganzen Zahlen zu finden. Diesmal werden wir es tun Sprechen Sie über Fakultät und stellen Sie vor, wie man die Fakultät einer bestimmten ganzen Zahl N berechnet. Interessierte Freunde können mehr darüber erfahren~
Lassen Sie uns zunächst verstehenWas ist Fakultät?
Die Fakultät einer positiven ganzen Zahl bezieht sich auf das Produkt aller positiven ganzen Zahlen, die kleiner und gleich der Zahl sind. Daher bedeutet die Fakultät einer gegebenen ganzen Zahl N:
1 × 2 × 3×...× (n-1) × n
Die Fakultät zu finden ist sehr einfach, und Schüler, die gerade mit dem Programmieren begonnen haben, werden es auf jeden Fall tun Es gibt viele Möglichkeiten, ein Programmierproblem zu implementieren. In diesem Artikel werden verschiedene Methoden zur Implementierung von Fakultäten aus der Perspektive einer for-Schleife, einer while-Schleife, einer do-while-Schleife und einer Rekursion vorgestellt.
Methode 1: Verwenden Sie eine for-Schleife, um die Fakultät von N zu implementieren
Implementierungsidee:
Denn das Finden der Fakultät von n bedeutet, das Produkt von 1 mal 2 mal 3 zu finden ... bis hin zu N. Daher kann die Anfangsbedingung der for-Schleife auf i = 1
gesetzt werden und die Einschränkungsbedingung kann i oder <code>i . <br><code>i = 1
,限制条件可以是 i 或者 <code>i 。<br>
然后循环体中的就是乘法运算了,将每次循环的 i 值相乘,得到一个乘积
最后输出乘积即可
下面看看实现方法:
<?php header("Content-type:text/html;charset=utf-8"); //第一种方法--for循环 function Factorial($n) { $sum = 1; for ($i = 1; $i <= $n; $i++) { $sum *= $i; } echo "$n 的阶乘为: " . $sum."<br><br>"; } Factorial(5); Factorial(10); Factorial(100); ?>
$sum *= $i
语句等价于$sum=$sum*$i
,*=
Geben Sie schließlich das Produkt aus. Siehe unten Implementierungsmethode:
<?php header("Content-type:text/html;charset=utf-8"); //第二种方法--while循环 function Factorial($n) { $i = 1; $sum=1; while($i<=$n){ $sum*=$i; $i++; } echo "$n 的阶乘为: " . $sum."<br><br>"; } Factorial(1); Factorial(2); Factorial(3); Factorial(11); ?>
$sum *= $i
-Anweisung ist äquivalent zu $sum=$sum*$i
, *=
-Zuweisung Der Operator kann die Variable auf der linken Seite des Operators mit dem Wert des Ausdrucks auf der rechten Seite multiplizieren und ihn der Variablen auf der linken Seite zuweisen. Hinweis: Da jeder mit 0 multiplizierte Wert 0 ist, muss der Anfangswert der Variablen $sum 1 sein. Werfen wir einen Blick auf die Ausgabeergebnisse:
Nachdem wir nun verstanden haben, wie die for-Schleife die Fakultät von N implementiert, kennen wir fast die Implementierungsmethoden der while-Schleife und der do-while-Schleife (ihr Implementierungsdenken). ist das Gleiche).
Methode 2: Verwenden Sie eine while-Schleife, um die Fakultät von N
<?php header("Content-type:text/html;charset=utf-8"); //第三种方法--do while循环 function Factorial($n) { $i = 1; $sum=1; do { $sum *= $i; $i++; } while ($i <= $n); echo "$n 的阶乘为: " . $sum."<br><br>"; } Factorial(2); Factorial(3); Factorial(4); Factorial(10); ?>
Ausgabeergebnis:
Methode 3: Verwenden Sie eine do-while-Schleife, um die Fakultät von Nf(1) = 1 f(n) = n * f(n-1) {n>1}
Ausgabeergebnis :
Vergleichen Sie Methode 1, Methode 2 und Methode 3. Finden Sie, dass sie sehr ähnlich sind?Nach dem rekursiven Denken kann Fakultät durch die folgende Formel ausgedrückt werden: <?php
header("Content-type:text/html;charset=utf-8");
//第四种方法--递归
function Factorial($n) {
$sum=1;
if($n <= 1){
return 1;
}else{
$sum = $n * factorial($n-1);
return $sum;
}
}
echo "2 的阶乘为: " .Factorial(2)."<br><br>";
echo "3 的阶乘为: " .Factorial(3)."<br><br>";
echo "4 的阶乘为: " .Factorial(4)."<br><br>";
echo "10 的阶乘为: " .Factorial(10);
?>
Daher lautet der Code zur Verwendung von PHP zum rekursiven Finden von N-Fakultäten wie folgt:
Das obige ist der detaillierte Inhalt vonSo berechnen Sie die Fakultät einer bestimmten Zahl n mit einem PHP-Programm. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!