Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk mengira faktorial nombor n yang diberikan melalui program PHP

Bagaimana untuk mengira faktorial nombor n yang diberikan melalui program PHP

青灯夜游
青灯夜游asal
2021-08-13 20:13:418095semak imbas

Dalam artikel sebelumnya "Pembelajaran Gelung PHP 9: Mendapatkan pembahagi sepunya terbesar antara dua nombor yang diberi", kami memperkenalkan penggunaan penyataan gelung sementara untuk mencari pembahagi sepunya terbesar antara dua integer yang diberi , kali ini kita akan bercakap tentang faktorial dan memperkenalkan cara mengira faktorial bagi integer N yang diberikan. Rakan-rakan yang berminat boleh mempelajarinya~

Pertama sekali, mari kita fahami Apakah itu faktorial?

Faktorial integer positif ialah hasil darab semua integer positif kurang daripada dan sama dengan nombor. Oleh itu, faktorial bagi integer N yang diberi ialah:

1 × 2 × 3×...× (n-1) × n

Memang mudah untuk find the factorial , adalah soalan pengaturcaraan yang pasti akan dihadapi oleh pelajar yang baru memulakan program, dan terdapat banyak cara untuk melaksanakannya. Artikel ini akan memperkenalkan anda kepada pelbagai kaedah melaksanakan faktorial dari perspektif untuk gelung, gelung sambil, gelung do-while dan rekursi.

Kaedah 1: Gunakan gelung for untuk melaksanakan faktorial N

Idea pelaksanaan:

  • Kerana mencari faktorial daripada n ialah Cari hasil darab 1 darab 2 darab 3...sepanjang jalan sehingga n. Jadi keadaan awal gelung for boleh ditetapkan kepada i = 1, dan keadaan had boleh menjadi i  atau <code>i . <br>

  • Kemudian operasi pendaraban dilakukan dalam badan gelung. Darabkan nilai i setiap gelung untuk mendapatkan produk

  • Akhirnya keluarkan produk

Mari kita lihat kaedah pelaksanaan:

<?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);
?>

pernyataan bersamaan dengan $sum *= $i, $sum=$sum*$i penetapan Operator boleh mendarab pembolehubah di sebelah kiri operator dengan nilai ungkapan di sebelah kanan dan menetapkannya kepada pembolehubah di sebelah kiri. Nota: Oleh kerana sebarang nilai didarab dengan 0 ialah 0, nilai awal pembolehubah $sum mestilah 1. *=

Mari kita lihat hasil output:

Bagaimana untuk mengira faktorial nombor n yang diberikan melalui program PHP

Memahami kaedah melaksanakan faktorial N dalam gelung for, kaedah pelaksanaan gelung while dan gelung do-while juga Itu hampir semua yang saya tahu (pemikiran pelaksanaan mereka adalah sama).

Kaedah 2: Gunakan gelung sementara untuk melaksanakan pemfaktoran 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);
?>
Hasil keluaran:

Bagaimana untuk mengira faktorial nombor n yang diberikan melalui program PHP

Kaedah 3: Gunakan gelung do-while untuk melaksanakan pemfaktoran 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);
?>
Hasil keluaran:

Bagaimana untuk mengira faktorial nombor n yang diberikan melalui program PHP

Bandingkan, kaedah 1, Kaedah 2 dan Kaedah 3, adakah anda mendapati bahawa mereka sangat serupa!

Baiklah, inilah satu lagi perkara penting Mari kita lihat bagaimana rekursi melaksanakan faktorial N.

Kaedah 4: Gunakan rekursi untuk melaksanakan faktorial N

Jadi apakah rekursi? Ringkasnya, rekursi bermaksud program memanggil dirinya sendiri dan fungsi itu terus merujuk dirinya sehingga objek yang dirujuk diketahui. Dua syarat berikut mesti dipenuhi untuk membentuk rekursi:

  • Submasalah mestilah sama dengan masalah asal dan lebih mudah.

  • tidak boleh menyebut dirinya tanpa had, mesti ada jalan keluar yang memudahkan pemprosesan situasi bukan rekursif.

Menurut pemikiran rekursif, faktorial boleh dinyatakan dengan formula berikut:

f(1) = 1
f(n) = n * f(n-1) {n>1}
Oleh itu, kod untuk menggunakan PHP untuk mencari N faktorial secara rekursif adalah sebagai berikut:

<?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);
?>
Hasil keluaran:

Bagaimana untuk mengira faktorial nombor n yang diberikan melalui program PHP

Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh klik ini. → →

tutorial video php

Disyorkan: Koleksi soalan temuduga PHP (koleksi)

Atas ialah kandungan terperinci Bagaimana untuk mengira faktorial nombor n yang diberikan melalui program PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn