Methoden Rekursive Methode berechnen

Bitte aktiviere JavaScript!
Hallo, ich komme bei dieser Aufgabe nicht weiter. Man soll diese rekursive Methode berechnen mit den Parameter f(11, 8). Kann mir jemand weiter helfen wie man das berechnen soll

Java:
static int f(int x, int y) {
          if (x == 1)
            return y + 1;
          else if (x == y)
              return f(x - 2, y);
        else
              return f(x % 2, f(x - 2, y + 1) + 2);
      }
 
A

Anzeige




Schau mal hier —> (hier klicken)
Du gehst die Methode Schritt für Schritt durch und schreibst dir die jeweiligen Werte auf, solange bis die Rekursion terminiert.
 
Eine gute Weise bei solchen Aufgaben/Rekursionen vorzugehen, ist schrittweise Ersetzung von Teilausdrücken durch ihre jeweiligen weiteren rekursiven Aufrufe. Ich mach das mal für den Anfang vor und dann kannst du das bis zu Ende weiterführen:
Code:
f(11, 8)                         // <- else, da weder 7 == 1 noch 7 == 9
  = f(1, f(9, 9) + 2)            // <- (x == y), da (9 == 9)
  = f(1, f(7, 9) + 2)            // <- else, da weder 7 == 1 noch 7 == 9
  = f(1, f(1, f(5, 10) + 2) + 2) // <- else, da weder 5 == 1 noch 5 == 10
  = ... hier kommen weitere Ersetzungen durch dich ...
  = 25
Denke immer daran, den innersten Aufruf von 'f' zu ersetzen. Dabei gehst du so vor, dass du dir die konkreten Argumente anguckst (z.B. am Anfang (11, 8)) und schaust, welcher Fall hier eintritt. Und dann ersetzt du den ursprünglichen f(11, 8) Aufruf/Ausdruck eben durch das, was der eingetretene Fall machen würde. In diesem Fall also f(1, f(9, 9) + 2).
 
A

Anzeige




Vielleicht hilft dir das hier weiter: (klicke hier)
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben