Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk mengira faktorial nombor n yang diberikan melalui program PHP
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
<?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. *=
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:
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: 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: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: Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh klik ini. → →
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!