Dalam artikel sebelumnya "Pembelajaran Tatasusunan PHP: Mengembalikan Semua Faktor Sepunya dan Faktor Sepunya Terbesar antara Dua Nombor Diberi", kami memperkenalkan cara untuk mendapatkan semua faktor sepunya dua integer, kaedah mencari pembahagi sepunya terbesar. Kali ini kami akan memperkenalkan kepada anda kaedah mencari pembahagi sepunya yang paling hebat Rakan-rakan yang berminat boleh mempelajarinya~
Dalam artikel sebelumnya, kami meletakkan semua faktor dua integer dalam Dalam dua tatasusunan, dan kemudian gunakan fungsi array_intersect() untuk mencari persilangan dua tatasusunan, anda boleh mendapatkan tatasusunan yang mengandungi semua faktor sepunya, kemudian gunakan fungsi max() untuk mengira nombor maksimum dalam tatasusunan persilangan, dan anda akan mendapat sepunya yang paling besar; faktor.
Bukankah ia agak menyusahkan? Berikut ialah kaedah yang mudah dan umum (boleh digunakan dalam bahasa lain).
Kali ini kami tidak menggunakan fungsi terbina dalam PHP, tetapi gunakan pernyataan if judgement dan pernyataan gelung while untuk mencari pembahagi sepunya terbesar antara dua integer yang diberikan.
Langkah pelaksanaan: Terdapat dua pembolehubah a, b
Langkah pertama: Pastikan nombor besar diletakkan dalam a dan perpuluhan diletakkan dalam b.
Ini memerlukan penggunaan pernyataan if untuk menentukan Jika a < b, tentukan suhu pembolehubah perantaraan untuk merealisasikan pertukaran nilai a dan b
if ($a < $b) { //a < b,则交换两个数 $temp = $a; $a = $b; $b = $temp; }
dan tetapkan nilai kepada ra/b
$r = $a % $b;
, maka b di atas ialah pembahagi sepunya terbesar jika r=0
, anda perlu menetapkan nilai b kepada a, nilai r kepada b, dan terus mencari baki daripada a/b, Tentukan sama ada baki r ialah 0. Ini memerlukan penggunaan gelung (gelung sementara digunakan di sini): r!=0
while ($r != 0) { $a = $b; $b = $r; $r = $a % $b; }
<?php header("Content-type:text/html;charset=utf-8"); function gcd($a, $b) { $a1 = $a; $b1 = $b; if ($a < $b)//a < b,则交换两个数 { $temp = $a; $a = $b; $b = $temp; } $r = $a % $b; while ($r != 0) { $a = $b; $b = $r; $r = $a % $b; } echo "数$a1 和$b1 的最大公因数为: $b <br><br>"; } gcd(30, 40); gcd(12, 16); gcd(15, 12); ?>
Disyorkan: 《Koleksi soalan temuduga PHP (koleksi)》
Atas ialah kandungan terperinci Pembelajaran Gelung PHP 9: Dapatkan faktor sepunya terbesar antara dua nombor yang diberi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!