Kannst Du den Kontext noch etwas beschreiben?
Das sieht ansonsten erst einmal nach einem Methodenaufruf aus. Die Methode a hat da jetzt halt 2 Parameter und der erste bekommt die 6 und der zweite die 3.
Wenn es also um Rekursion gibt, dann hast Du halt eine Rekursion mit zwei Eingaben die dann definiert sind.
Also ein einfaches Beispiel (keine Ahnung, ob es Sinn ergibt - einfach mal ausgedacht):
a(x,y) = y falls x = 1
= a(x/2, y+1) falls x gerade
= a(x+1, y+2) falls x ungerade
Bei dem a(6,3) bedeutet dass (6 ist gerade) a(6,3) = a(3,4) = a(4, 6) = a(2, 7) = a(1,8) = 8
(Also einfach die Rekursion mal für dieses Beispiel durchgespielt)
Ging es in die Richtung? Falls nicht bitte einfach mehr Details liefern.
Danke, nun verstehe ich den Ansatz. Aber warum läuft ist diese Funktion nicht unendlich?Du kannst das doch durchgehen im Code. Die Methode hast Du ja. Also was passiert bei a(3,3) (Hinweis: Immer auf die richtigen Zeichen achten! a(3/3) ist was anderes als a(3,3)!):
Ist x<=0 oder y < 0? Nein
ist x%2 == 0? Nein
also wird a(3-1, 3-2) aufgerufen.
Genau so kannst Du doch jeden Aufruf weiter durchgehen, oder nicht? Woran scheitert es? Ich sehe gerade keinen Ansatzpunkt Dir zu helfen, da ich gerade nicht sehe, wo es bei dir hakt.
Danke! Return hat die Funktion von =Wenn x oder y 0 oder kleiner 0 ist, wird keiner Rekursion mehr gemacht es wird nur das Ergebnis zurückgegen, kein Aufruf von sich selber mehr .
Das ist ja deine Abbruch Bedingung, was jede Rekursion haben sollte .
Tipp: was macht return?