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

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.
#3
vote_ok
von L4ZUR812 (630 Punkte) - 05.09.2014 um 11:59 Uhr
Quellcode ausblenden Java-Code
[CODE]package ÜbungsAufgaben;

import javax.swing.JOptionPane;

public class Aufgabe08 {

	public static void main(String[] args) {
		Aufgabe08 m = new Aufgabe08();

		int zahl1 = Integer.parseInt(JOptionPane
				.showInputDialog("Eingabe der ersten Zahl:"));// Aufnahme der ersten zu teilenden Zahl.
		int zahl2 = Integer.parseInt(JOptionPane
				.showInputDialog("Eingabe der zweiten Zahl:"));// Aufnahme der zweiten zu teilenden Zahl.

		JOptionPane.showMessageDialog(
				null,
				"ggT nach dem klassen Euklidischen Algorithmus: "
						+ m.klassischerAlgorithmus(zahl1, zahl2));// Ausgabe des ggT nach klassischer Art.
		JOptionPane.showMessageDialog(
				null,
				"ggT nach dem modernen Euklidischen Algorithmus: "
						+ m.modernerAlgorithmus(zahl1, zahl2));// Ausgabe des ggT nach moderner Art.
	}

	int klassischerAlgorithmus(int zahl1, int zahl2) {
		if (zahl1 == 0) {
			return zahl2;
		} else {
			while (zahl2 != 0) {
				if (zahl1 > zahl2) {
					zahl1 -= zahl2;
				} else {
					zahl2 -= zahl1;
				}
			}
		}
		return zahl1;
	}

	int modernerAlgorithmus(int zahl1, int zahl2) {
		int n;
		while (zahl2 != 0) {
			n = zahl1 % zahl2;
			zahl1 = zahl2;
			zahl2 = n;
		}
		return zahl1;
	}
}[/CODE]

Kommentare:

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

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