Java :: Aufgabe #8 :: Lösung #1
6 Lösungen
#8
Euklidischer Algorithmus
Anfänger - Java
von Jurom
- 23.10.2012 um 11:49 Uhr
Erstellen Sie ein Programm, das den größten gemeinsamen Teiler zweier natürlicher Zahlen zurückgibt.
Benutzen Sie hierzu den euklidischen Algorithmus; sowohl den klassischen, als auch den modernen.
Geben Sie zum Vergleich beide Lösungen aus.
Auf ein Exception-Handling kann verzichtet werden.
Beispiele zum Lösungslayout sind beigefügt.
Benutzen Sie hierzu den euklidischen Algorithmus; sowohl den klassischen, als auch den modernen.
Geben Sie zum Vergleich beide Lösungen aus.
Auf ein Exception-Handling kann verzichtet werden.
Beispiele zum Lösungslayout sind beigefügt.
#1
von Jurom (1070 Punkte)
- 23.10.2012 um 16:12 Uhr
//©2012 by Julius J. Hoffmann
//written with Eclipse
import java.util.*; //Importiert Scanner zum Einlesen der Eingabe
public class Euklid { //die "ausführende" Klasse
static int old(int a, int b) //Methode zur Berechnung des klass. Algorithmus
{ //mit Übergabe von 2 int-Variablen
if (a==0) return b; //Bedingung: a = 0 -> Rückgabe b; Ende der Methode
while (b!=0) //Initiierung einer while-Schleife mit b nicht 0 als Bedingung
{
if (a > b) a = a-b; //Subtraktion der kleinern von der kleineren Zahl, wenn a größer
else b = b-a; //wenn b kleiner, iterative Berechnung
}
return a; //Rückgabe a (wenn b = 0)
}
static int modern (int a, int b) //Methode zur Berechnung des modernen Algorithmus
{
if (b==0) return a; //wenn b = 0, Rückgabe a; Ende der Methode
return modern(b, a%b); //rekursiver Aufruf der Funktion, mit b, Rest von a/b
}
public static void main(String[] args) //main-Methode
{
Scanner s = new Scanner(System.in); //Anlegen des Scanner-Objektes
System.out.print("Geben Sie die 1. natürliche Zahl an: "); //Ausgabe des Strings
int x = s.nextInt(); //Einlesen der Benutzereingabe
System.out.print("Geben Sie die 2. natürliche Zahl an: "); //Ausgabe des Strings
int y = s.nextInt(); //Einlesen der Benutzereingabe
System.out.println("alter Euklid: " + old(x,y)); //Ausgabe String, Aufruf von old()
System.out.print("moderner Euklid: " + modern(x,y)); //Ausgabe String, Aufruf von modern
}
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
