Thema: Rekursionsfunktion
-
07.04.2014, 18:49 #1
- Registriert seit
- 19.11.2011
- Beiträge
- 2.128
Thanked 1.936 Times in 1.180 PostsRekursionsfunktion
Hallo.
Wir haben im Informatikunterricht Aufgaben bekommen und zwar diese:
Die jeweils erste Reihe ist der Index, dadrunter befindet sich das Ergebnis einer Rechnung.
Schaut man bei Aufgabe 1) beispielsweise auf Index 4, so sieht man, dass als Resultat 15 herauskommen muss.
Das ist natürlich mehr als simpel.
Jetzt habe ich das versucht in Java umzusetzen, aber irgendwie klappt etwas mit der Rekursion nicht.
Code:
public int afunc(int n) {return afunc(n -1) * 2 + 1;}
public int bfunc(int n) {return bfunc(n -1) + 3;}
public int cfunc(int n) {return cfunc(n-1) * n;}
public void doindexberechnung()
{
jTextArea1.setText(String.valueOf(afunc(4)));
}
Fehler:
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
Kann mir jemand sagen, was da schief läuft?
-
07.04.2014, 22:15 #2
- Registriert seit
- 09.11.2011
- Beiträge
- 121
Thanked 129 Times in 46 PostsAW: Rekursionsfunktion
Wo ist deine Abbruchbedingung in der Rekursion?
MfG
-
08.04.2014, 10:23 #3
- Registriert seit
- 19.11.2011
- Beiträge
- 2.128
Thanked 1.936 Times in 1.180 PostsAW: Rekursionsfunktion
Ah stimmt, danke.
Wie soll ich die Abbruchbedingung machen in diesem Fall?
Hatte irgendwas gedacht wie : if (n > 0) return afunc(n-1) * 2 + ;
Bzw. if(n <=0 ) return;
Aber das funktioniert alles nicht.
Wie macht man das in Java?Geändert von !lkay (08.04.2014 um 10:24 Uhr)
-
08.04.2014, 10:34 #4
AW: Rekursionsfunktion
Da du in deinen Rekursionen den Input immer verringerst, wäre es ratsam die Abbruchbedingung so zu wählen, dass sie den kleinstmöglichen Input behandelt. Zum Beispiel: wenn n = 1, gib 1 zurück.
-
The Following User Says Thank You to Nuebel For This Useful Post:
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.