Mit Rekursion und Umsetzung von Euklid ' s Algorithmus zum finden GGT von drei zahlen vom Benutzer
Ich bin zu wollen, bitten Sie den Benutzer zur Eingabe drei zahlen und dann das Programm berechnet den GGT mittels Euklid ' s Algorithmus alle während der Verwendung der Rekursion.
Mein code richtig implementiert jetzt zwei zahlen einzugeben. Ich verstehe den Ansatz, die Berechnung der GCD von a und b, und nennen es Ergebnis d.... Dann mit dem Dritten Eingang (c) und d zu finden, der GCD und im wesentlichen wiederholen Euklid ' s Algorithmus wieder; ich bin nicht sicher, wie Sie diese umsetzen im code.
import java.util.Scanner;
public class RecursionDemo {
public static void main (String[] args) {
Scanner userInput = new Scanner(System.in);
System.out.println("Enter first number: ");
int a = userInput.nextInt();
System.out.println("Enter second number: ");
int b = userInput.nextInt();
System.out.println("GCD is: " + gCd(a, b));
}
public static int gCd(int a, int b) {
if(b == 0){
return a;
}
return gCd(b, a%b);
}
}
Den Teil, der wirklich werfen mich aus ist mit Rekursion zu lösen mein problem.
So weit ich weiß, brauche ich, um zu implementieren:
System.out.println("Enter third number: ");
int c = userInput.nextInt();
d = //Not sure here
//And then modify my recursion method to find GCD.
Jede Hilfe oder Anregungen würde sehr geschätzt werden!
gcd(a,b,c) = gcd(gcd(a,b),c)
InformationsquelleAutor TroutmasterJ | 2014-03-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beachten Sie, dass Sie rufen Sie Ihren
gCd
- Funktion, mit der zwei beliebige Argumente, nicht nura
undb
. Für ein besseres Verständnis und weniger Verwirrung, möchten Sie vielleicht umbenennen, um seine Argumente, wie die folgenden:Also, zuerst rufen Sie es mit
x = a
undy = b
zu finden GCD vona
undb
. Speichern Sie das Ergebnis in einer neuen variabled
. Danach rufen Sie es wieder mitx = d
was wiederum GCD vona
undb
, undy = c
. So erhalten Sie den GGT aller drei zahlen.InformationsquelleAutor Gassa
Den gcd-Methode Durchlaufen werden können, erhalten den gcd von einer größeren Menge von zahlen.
Zum Beispiel:
gCd(a, b, c) = gCd( gCd(a, b), c)
und
gCd(a, b, c, d) = gCd( gCd(a, b, c), d)
so danngCd(a, b, c, d) = gCd( gCd( gCd(a, b), c), d)
Einfach, spezielle Lösung:
Allerdings, wenn Sie feststellen, es ist die Rekursion geht. Ich habe eine Methode, die eine array von Ganzzahlen als input. Es wird für die Arbeit ein array der Größe drei, oder jeder Größe. Hier sind die Methoden:
So, in Beziehung zu deinem code:
Sample-input/output:
InformationsquelleAutor Michael Yaworski