Frage zur Abbruchbedingung Rekursion

AlexD

Aktives Mitglied
Hallo zusammen ich soll eine rekursive Methode schreiben die den ggt von 2 Zahlen ausgibt.

Jetzt hab ich mir als Abbruchbedingung folgendes gedacht.

Java:
 if (a%b==0)

ist sowas möglich ?

BITTE KEINE LÖSUNG , NUR OB DAS GEHT
 
Ja
aber
du
musst
aufpassen
dass
der
Fall
auch
erreicht
wird
sonst
gibt
es
einen
StackOverflowError
😀
 
ich wollte die Zahlen nicht so groß wählen, vielleicht bis 2000 oder so.

edit

wenn ich zb. 2000 und 1350 habe dann werden ja nur 2 Nebenrechnungen gemacht, da sollte es doch keinen Stackoverflow geben !
 
Zuletzt bearbeitet:
Wenn die Bedingung nicht erfüllt wird gibt es immer einen StackOverflow, sofern am Ende der Methode wieder ein Aufruf erfolgt. Das ist der Pedant zu einer Endlosschleife der anderen Schleifenkonstrukte, da er sich ja immer den Einsprungpunkt zu einer Methode merken muss. Irgendwann ist der Platz alle.
Ansonst geht es natürlich. (Ist das jetzt eine Lösung ???:L)
 
Zuletzt bearbeitet:
Die Größe ist nicht so wichtig (sagt auch meine Freundin immer), du musst nur zusehen, dass irgendwann (z.B. auch wenn Primzahlen übergeben werden) die Bedingung zutrifft (spätestens bei b=1 ist das der Fall), aber das hängt eben vom übrigen Code ab.
 
Bei b=1 ist die Bedinung a%b==0 (für ganzzahlige a) erfüllt, das ist also nicht nötig. Die Bedingung ist richtig, wenn der Rest des Programmes auch richtig ist...
 

Zurück
Oben