Erste Schritte Wie kommt man auf diese Ausgabe?

minipom

Mitglied
Hallo,

ich zerbreche mir jetzt seit einiger Zeit den Kopf über diese Übungsaufgabe, bei der gefragt ist wie die Ausgabe von 1 und 2 ist:

Java:
public class runden {
public static void main(String [] args) {
System.out.println("1.Ausgabe: " + wasTuIch(21,57));
System.out.println("2.Ausgabe: " + wasTuIch(45,81)); }
public static int wasTuIch(int a, int b) 
{
while (a != b) {
if (a > b)
a = a - b;
else
b = b - a;
} 
return a;

}
}

1 Ausgabe = 3
2 Ausgabe = 9

Aber wie komme ich darauf, ich verstehe es einfach nicht :/

Danke jetzt schonmal
 
Bau dir doch einfach ein paar Ausgaben ein, sodass du siehst, was in den einzelnen Schritten passiert. Ansonsten ist das aber auch kein allzu schwerer Quelltext.

Java:
public class runden
{
    public static void main(String[] args)
    {
        System.out.println("1.Ausgabe: " + wasTuIch(21, 57));
    }

    public static int wasTuIch(int a, int b)
    {
        while (a != b)
        {
            if (a > b)
            {
                System.out.println("A ist größer als B, daher wird B von A abgezogen!");
                a = a - b;
            }
            else
            {
                System.out.println("B ist größer als A, daher wird A von B abgezogen!");
                b = b - a;
            }
            System.out.println("Nach Durchlauf der while-Schleife - A: " + a + " B: " + b);
        }
        return a;

    }

}

Code:
B ist größer als A, daher wird A von B abgezogen!
Nach Durchlauf der while-Schleife - A: 21 B: 36

B ist größer als A, daher wird A von B abgezogen!
Nach Durchlauf der while-Schleife - A: 21 B: 15

A ist größer als B, daher wird B von A abgezogen!
Nach Durchlauf der while-Schleife - A: 6 B: 15

B ist größer als A, daher wird A von B abgezogen!
Nach Durchlauf der while-Schleife - A: 6 B: 9

B ist größer als A, daher wird A von B abgezogen!
Nach Durchlauf der while-Schleife - A: 6 B: 3

A ist größer als B, daher wird B von A abgezogen!
Nach Durchlauf der while-Schleife - A: 3 B: 3

1.Ausgabe: 3
 
Übersetzung der Methode wasTuIch( int a, int b )
[JAVA=7]
[Solange] [Variable A] [ist nicht gleich] [Variable B] [mache]
while (a != b) {

[Wenn] [Variable A] [größer] [Variable B]
if (a > b)

[Variable A] [ist neuer Wert:] [Variable A] [minus] [Variable B]
a = a - b;

[Ansonsten] (Wenn Variable A nicht größer Variable B)
else

[Variable B] [ist neuer Wert:] [Variable B] [minus] [Variable A]
b = b - a;

[Ende von while]
}

[Gib zurück] [Variable A]
return a;
[/code]
 

Neue Themen


Zurück
Oben