Java :: Aufgabe #8 :: Lösung #2

6 Lösungen Lösungen öffentlich
#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.
#2
vote_ok
von 23Java (510 Punkte) - 29.10.2012 um 09:09 Uhr
Quellcode ausblenden Java-Code
import java.util.Scanner;

public class EuklidAlg {
	
	static Scanner sc;
	static int a, b;
	
	public static void main(String[] args) {
		sc = new Scanner(System.in);
		
		System.out.println("Bitte erste Zahl eingeben.");
		a = sc.nextInt();
		
		System.out.println("Bitte zweite Zahl eingeben.");
		b = sc.nextInt();
		
		System.out.println("a: " + a + "\n" +
							"b: " + b);
		
		int ggTold = euklidOld(a, b);
		System.out.println("Ergebnis klassischer Algorithmus: " + ggTold);
		
		int ggTnew = euklidNew(a, b);
		System.out.println("Ergebnis moderner Algorithmus: " + ggTnew);
	}
	
	public static int euklidOld(int a, int b) {
		if(a == 0) {
			return b;
		} else {
			while(b != 0) {
				if(a > b) {
					a = a - b;
				} else {
					b = b - a;
				}
			}
		}
		return a;
	}
	
	public static int euklidNew(int a, int b) {
		if(b == 0) {
			return a;
		} else {
			return euklidNew(b, a % b);
		}
	}

}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2116568

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.