Endrekursion
Verfasst: Samstag 23. Januar 2016, 21:54
Hallo,
ich habe in C ein kleines Programmbeispiel gefunden welches die Fibonaccifolge endrekursiv ausgibt mit hilfe von zwei Variabeln die als Akkumulator dienen, soweit ich das verstanden habe. Das Programm selbst funktioniert aber ich verstehe einfach nicht wie es arbeitet ^^
Man gibt die n-te Stelle der Fibonaccifolge ein und erhält die passende Zahl als Ausgabe.
1
Ich kann auch keine Zwischenschritte ausprinten, da sofort die Fib-Zahl ausgegeben wird. Kann mir einer kurz erklären wie der Algorithmus arbeitet?
Meine Vermutung:
n, a , b
5-1,1,0
4-1,1,1
3-1,2,1
2-1,3,2
ich habe in C ein kleines Programmbeispiel gefunden welches die Fibonaccifolge endrekursiv ausgibt mit hilfe von zwei Variabeln die als Akkumulator dienen, soweit ich das verstanden habe. Das Programm selbst funktioniert aber ich verstehe einfach nicht wie es arbeitet ^^
Man gibt die n-te Stelle der Fibonaccifolge ein und erhält die passende Zahl als Ausgabe.
1
Code: Alles auswählen
def fib_endrekursiv(n):
2 return fib_hilfe(n-1,1,0)
3
4def fib_hilfe(n, a , b):
5 if n <= 1:
6 return a + b
7 return fib_hilfe(n-1, b+a, a)
8print(fib_endrekursiv(5))Meine Vermutung:
n, a , b
5-1,1,0
4-1,1,1
3-1,2,1
2-1,3,2