Heim > Artikel > Backend-Entwicklung > PHP Loop Learning 9: Ermitteln Sie den größten gemeinsamen Faktor zwischen zwei gegebenen Zahlen
Im vorherigen Artikel „PHP-Array-Lernen: Alle gemeinsamen Faktoren und den größten gemeinsamen Teiler zwischen zwei gegebenen Zahlen zurückgeben“ haben wir eine Methode vorgestellt, um alle gemeinsamen Faktoren zweier Ganzzahlen zu ermitteln und die Methode mit dem größten gemeinsamen Teiler zu finden. Dieses Mal stellen wir Ihnen eine Methode zum Ermitteln des größten gemeinsamen Teilers vor. ~
Im vorherigen Artikel haben wir alle Faktoren zweier Ganzzahlen in zwei Arrays eingefügt und dann die Funktion array_intersect() verwendet um den Schnittpunkt der beiden Arrays zu finden, und Sie erhalten ein Array, das alle gemeinsamen Faktoren enthält. Verwenden Sie dann die Funktion max(), um die maximale Zahl im Schnittpunkt-Array zu berechnen, und Sie erhalten den größten gemeinsamen Faktor.
Ist das nicht ein bisschen mühsam? Wir müssen alle Faktoren einzeln herausfinden, dann alle gemeinsamen Faktoren berechnen und schließlich den größten gemeinsamen Teiler finden. Hier ist eine einfache und allgemeine Methode (kann in anderen Sprachen verwendet werden).
Dieses Mal verwenden wir keine in PHP integrierten Funktionen, sondern verwenden if-Beurteilungsanweisungen und while-Schleifenanweisungen, um den größten gemeinsamen Teiler zwischen zwei gegebenen ganzen Zahlen zu finden.
Implementierungsschritte: Es gibt zwei Variablen a, b
Schritt eins: Stellen Sie sicher, dass große Zahlen in a und kleine Zahlen in b platziert werden.
Dies erfordert die Verwendung von if-Anweisungen, um zu beurteilen, ob a a/b Der Rest, der Wert wird r zugewiesen
if ($a < $b) { //a < b,则交换两个数 $temp = $a; $a = $b; $b = $temp; }
Schritt 3: Bestimmen Sie, ob der Rest r 0 ist. a/b
的余数,值赋给 r
$r = $a % $b;
第三步:判断 余数r 是否为0。
如果 r=0
,则上面的b就是最大公约数;如果 r!=0
r=0
, dann ist b oben der größte gemeinsame Teiler; wenn r!=0
, müssen Sie a den Wert von b und den Wert von zuweisen r Wenn b gegeben ist, ermitteln Sie weiterhin den Rest von a/b und bestimmen Sie, ob der Rest r 0 ist. Dies erfordert die Verwendung einer Schleife (hier wird eine while-Schleife verwendet): 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); ?>
Okay, das ist alles. Wenn Sie noch etwas wissen möchten, können Sie hier klicken. → →php-Video-Tutorial
Empfehlung:"Sammlung von PHP-Interviewfragen (Sammlung)
"🎜Das obige ist der detaillierte Inhalt vonPHP Loop Learning 9: Ermitteln Sie den größten gemeinsamen Faktor zwischen zwei gegebenen Zahlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!