Hallo Leute.Ich hab grad angefangen mit Java und hab als Übungsaufgabe folgendes Problem bekommen.
Vielleicht könnt ihr mir ja helfen und weil ich echt überfordet bin
Aufgabe:
Implementieren Sie eine rekursive Methode, die die n-te Fibonacci-Zahl in linearer Zeit berechnet.
Gestalten Sie die Rekursion so, dass zusätzlich zu anderen Parametern die beiden
letzten Fibonacci-Zahlen als Parameter übergeben werden. Wertzuweisungen sollen in der
rekursiven Methode nicht verwendet werden. Testen Sie die Methode mit einer Anwendung.
Diese Anwendung muss eine ausführbare Klasse sein, d.h. eine Methode
public static void main (String[] args)
enthalten.
Lösungsvorschläge?
Im internet bin ich auf folgender Lösung gestoßen:
Rekursive Fakultät
Endrekursion mittels Hilfsfunktion
Durch Einführen der Hilfsfunktion g_factorial wird
die nachträgliche Multiplikation vermeiden.
=> Die Rekursion ist nun endrekursiv.
Vielen lieben Dank für eure Hilfe
Anna
Vielleicht könnt ihr mir ja helfen und weil ich echt überfordet bin
Aufgabe:
Implementieren Sie eine rekursive Methode, die die n-te Fibonacci-Zahl in linearer Zeit berechnet.
Gestalten Sie die Rekursion so, dass zusätzlich zu anderen Parametern die beiden
letzten Fibonacci-Zahlen als Parameter übergeben werden. Wertzuweisungen sollen in der
rekursiven Methode nicht verwendet werden. Testen Sie die Methode mit einer Anwendung.
Diese Anwendung muss eine ausführbare Klasse sein, d.h. eine Methode
public static void main (String[] args)
enthalten.
Lösungsvorschläge?
Im internet bin ich auf folgender Lösung gestoßen:
Rekursive Fakultät
Java:
int factorial(int n) {
if(n<=1) return 1;
return n*factorial(n-1);
}
Endrekursion mittels Hilfsfunktion
Java:
int g_factorial(int n, int fac) {
if (n<=1) return fac;
return g_factorial(n-1, fac*n);
} int factorial(int n) {
return g_factorial(n, 1);
}
Durch Einführen der Hilfsfunktion g_factorial wird
die nachträgliche Multiplikation vermeiden.
=> Die Rekursion ist nun endrekursiv.
Vielen lieben Dank für eure Hilfe
Anna