ホームページ  >  記事  >  バックエンド開発  >  PHP プログラムを通じて指定された数値 n の階乗を計算する方法

PHP プログラムを通じて指定された数値 n の階乗を計算する方法

青灯夜游
青灯夜游オリジナル
2021-08-13 20:13:418018ブラウズ

前の記事「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>

  • ループ本体は乗算演算です。各ループの 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, *=代入演算子は、演算子の左側の変数と右側の式の値を乗算し、それを次の式に代入できます。左側の変数。注: 値に 0 を乗算すると 0 になるため、変数 $sum の初期値は 1 でなければなりません。 出力結果を見てみましょう:

PHP プログラムを通じて指定された数値 n の階乗を計算する方法#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);
?>
の階乗を実装します。出力結果:

PHP プログラムを通じて指定された数値 n の階乗を計算する方法

メソッド 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);
?>
の階乗を実装します。出力結果:

PHP プログラムを通じて指定された数値 n の階乗を計算する方法メソッド 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 プログラムを通じて指定された数値 n の階乗を計算する方法php ビデオチュートリアル

推奨:

PHP 面接の質問の要約 (コレクション)>>

以上がPHP プログラムを通じて指定された数値 n の階乗を計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。