Fibunacci rekursiv
-
Wir haben in der Schule die Aufgabe bekommen die Fibunaccifolge rekursiv zu implementieren. Den passenden Quellcode habe ich gefunden aber wie er funktioniert, also wie er rechnet verstehe ich nicht. Habe auch schon wie blöde gegoogled, ohne erfolg. Wäre echt super wenn mir einer von euch da weiterhelfen kann.
#include<iostream> #include<conio.h> using namespace std; float fibunacci(int laufendezahl) { if (laufendezahl==1||laufendezahl==2) return 1; else return fibunacci(laufendezahl-1)+fibunacci(laufendezahl-2); } int main() { cout<<"Wie die Fibunaccizahlen rekursiv ausgerechnet werden:\n\n"; for(int zaehler=1;zaehler<=10;zaehler++) cout<<"="<<fibunacci(zaehler)<<"=\n"; getch(); return 0; }Wenn ich vor der "if" in zeile ein cout<<laufendezahl; schereibe bekomme ich das ergebniss was mich aber auch nicht schlauer macht. In Hochkommas stehen die Zahlen die in Zeile 7 ausgegeben würden und mit "=" eingebunden sind die Ergebnisse.
'1'=1=
'2'=1=
'3''2''1'=2=
'4''3''2''1''2'=3=
'5''4''3''2''1''2''3''2''1'=5=
'6''5''4''3''2''1''2''3''2''1''4''3''2''1''2'=8=
'7''6''5''4''3''2''1''2''3''2''1''4''3''2''1''2''5''4''3''2''1''2''3''2''1'=13=
'8''7''6''5''4''3''2''1''2''3''2''1''4''3''2''1''2''5''4''3''2''1''2''3''2''1''6''5''4''3''2''1''2''3''2''1''4''3''2''1''2'=21=
'9''8''7''6''5''4''3''2''1''2''3''2''1''4''3''2''1''2''5''4''3''2''1''2''3''2''1''6''5''4''3''2''1''2''3''2''1''4''3''2''1''2''7''6''5''4''3''2''1''2''3''2''1''4''3''2''1''2''5''4''3''2''1''2''3''2''1'=34
'10''9''8''7''6''5''4''3''2''1''2''3''2''1''4''3''2''1''2''5''4''3''2''1''2''3''2''1''6''5''4''3''2''1''2''3''2''1''4''3''2''1''2''7''6''5''4''3''2''1''2''3''2''1''4''3''2''1''2''5''4''3''2''1''2''3''2''1''8''7''6''5''4''3''2''1''2''3''2''1''4''3''2''1''2''5''4''3''2''1''2''3''2''1''6''5''4''3''2''1''2''3''2''1''4''3''2''1''2'=55=
-
Ganz wichtiger Tipp: Such deine Hausaufgaben nicht bei Google, sondern mach sie selber. Dann verstehst du auch, was da passiert. Und du kannst dadurch sowohl im Unterricht, bei der nächsten Hausaufgabe als auch bei der Prüfung verstehen was los ist. Bei der Googlesuche nicht.
-
Warum suchst du die Lösung wenn du die Aufgabe hast das eigentlich selbst zu implementieren?
Und so viel gibts da ja nicht zu verstehen was den Code anbelangt. Wenn du die mathematische Definition der Fibonacci Zahlen verstehst, dann sollte das doch auch verständlich sein?
Die aktuelle Fibonacci Zahl ist ja durch die beiden vorherigen definiert und da du die noch nicht kennst musst du die auch zuerst berechnen (daher die Rekursion). Lediglich von den ersten beiden Zahlen kennst du die Lösung (0 und 1 oder wie bei dir 1 und 1).
Lies sonst mal das hier:
http://de.wikipedia.org/wiki/Fibonacci-Folge