前の記事「PHP ループ学習 9: 指定された 2 つの数値間の最大公約数を取得する」では、while ループ ステートメントを使用して指定された 2 つの整数間の最大公約数を見つける方法を紹介しました。 、今回は階乗について説明し、指定された整数 N の階乗を計算する方法を紹介します。興味のある友達はそれについて学ぶことができます~
まず第一に、理解しましょう階乗とは何ですか?
正の整数の階乗は、その数値以下のすべての正の整数の積です。したがって、指定された整数 N の階乗は次のようになります。
1 × 2 × 3×...× (n-1) × n
階乗の求め方は次のとおりです。 simple は、プログラミングを始めたばかりの学生が必ず遭遇するプログラミングの問題であり、実装する方法はたくさんあります。この記事では、for ループ、while ループ、do-while ループ、再帰の観点から階乗を実装するさまざまな方法を紹介します。
方法 1: for ループを使用して N
の階乗を実装する実装アイデア:
階乗を見つけるためof n は、1 掛ける 2 掛ける 3 の積を n まで求めます。したがって、for ループの初期条件は i = 1
に設定でき、制限条件は i または <code>i <n><br></n>
<?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
, *=
代入演算子は、演算子の左側の変数と右側の式の値を乗算し、それを次の式に代入できます。左側の変数。注: 値に 0 を乗算すると 0 になるため、変数 $sum の初期値は 1 でなければなりません。 出力結果を見てみましょう:
#for ループが N の階乗を実装する方法を理解しました。 while ループの実装方法do-while ループも、私が知っていることのほとんどすべてです (実装の考え方は同じです)。
方法 2: while ループを使用して、N<?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);
?>
メソッド 3: do-while ループを使用して 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);
?>
メソッド 1、メソッドを比較します。 2 と方法 3. 非常に似ていることがわかりましたか!
さて、ここでもう一つ重要な点が来ました。再帰が N の階乗をどのように実装するかを見てみましょう。
方法 4: 再帰を使用して Nの階乗を実装する では、再帰とは何でしょうか。簡単に言えば、再帰とは、プログラムがそれ自体を呼び出し、参照先のオブジェクトが判明するまで関数がそれ自体を参照し続けることを意味します。再帰を構成するには、次の 2 つの条件が満たされる必要があります。
f(1) = 1 f(n) = n * f(n-1) {n>1}
したがって、PHP を使用して N 階乗を再帰的に求めるコードは次のとおりです。 ##
<?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); ?>
わかりました。他に知りたいことがあれば、ここをクリックしてください。 → →php ビデオチュートリアル
PHP 面接の質問の要約 (コレクション)>>以上がPHP プログラムを通じて指定された数値 n の階乗を計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。