Fibonacci
-
ohman stimmt, und ich komm nicht auf sowas...
Danke
-
Habe eine ähnliche Aufgabe.
Jedoch soll ich das gleiche Problem mit den int- Variablen i,f, fvor, fvorvor lösen. Leider komme ich einfach nicht darauf wie es geht.
Muss dazu sagen, dass ich absoluter C-Anfänger bin.Als Hilfe wurde mir gegeben:
int forvor= -1, fvor = 1Danke für schnelle Hilfe!
-
Hi Hulio19,
Die gewollte Fibonaccizahl erhält man, indem man die vorvorherige und die vorherige Zahl addiert. Die erste Fibonaccizahl ist 0, also -1 + 1.
Nach jedem Durchgang musst du fvorvor und fvor aktualisieren, fvorvor = fvor und fvor = f.Voilà:
#include <stdio.h> int main () { int fvorvor = -1, fvor = 1, i = 0, f = 0; /* gibt die ersten 10 Fibonaccizahlen aus */ for (i = 0; i < 10; i++) { f = fvorvor + fvor; printf("%i\n", f); fvorvor = fvor; fvor = f; } return 0; }
Gez. monstermunchkin
-
monstermunchkin schrieb:
Die gewollte Fibonaccizahl erhält man, indem man die vorvorherige und die vorherige Zahl addiert. Die erste Fibonaccizahl ist 0, also -1 + 1.
Was heißt hier: "also -1 + 1"?
Die vorherige Zahl von 0 ausgesehen ist zwar -1, aber die vorvorherige ist nicht 1 ...
-
Belli schrieb:
Was heißt hier: "also -1 + 1"?
Die vorherige Zahl von 0 ausgesehen ist zwar -1, aber die vorvorherige ist nicht 1 ...Dass die vorvorherige Zahl von 0 nicht 1 ist, ist mir schon bewusst. Aber um die Fibonaccireihenfolge zu erhalten muss man fvorvor mit -1 und fvor mit 1 initialiseren.
Ich weiß jetzt nicht genau worauf du eigentlich hinaus möchtest.
-
Belli schrieb:
Was heißt hier: "also -1 + 1"?
Die vorherige Zahl von 0 ausgesehen ist zwar -1, aber die vorvorherige ist nicht 1 ...Ja, andersrum. Die vorherige ist 1, die vorvorherige ist -1. Mit diesen Anfangsbedingungen bekommst du eine Folge, die ab dem 3. Glied mit der Fibonacci-Folge übereinstimmt.
-
Bashar schrieb:
Mit diesen Anfangsbedingungen bekommst du eine Folge, die ab dem 3. Glied mit der Fibonacci-Folge übereinstimmt.
Die Fibonacci-Folge stimmt doch schon ab dem 1. Glied überein: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34.
Also ich sehe in dem Code absolut kein Problem.
-
Dein Code setzt diese Rekursionsvorschrift um:
Halt wie Fibonacci, bloß mit anderen Anfangsgliedern. Die echte Fibonacci-Folge ergibt sich ab $$a_2$$, und nur diesen Teil gibst du aus.
-
Bashar schrieb:
Dein Code setzt diese Rekursionsvorschrift um:
Da hast du wohl Recht, die rekursive Bildungsvorschrift hab ich geändert.
Als Hilfe wurden dem Fragesteller jedoch fvorvor = -1 und fvor = 1 gegeben, und danach hab' ich mich gerichtet
-
Vielen Dank euch alle!
-
[quote="monstermunchkin"]
Belli schrieb:
Ich weiß jetzt nicht genau worauf du eigentlich hinaus möchtest.
Daß Deine Erklärung und die Schlussfolgerung, wie man zur Fibonacci-Zahl 0 kommt, nicht zusammenpassen.
Soweit ich mich erinnere, sind 0 und 1 per Definition Fibonacci-Zahlen, die Bildungsregel 'vorherige + vorvorherige' gilt erst ab der nächsten.
-
Hulio19 schrieb:
Als Hilfe wurde mir gegeben:
int forvor= -1, fvor = 1Davon ging ich aus. Damit hab' ich dann auch die 0 und die erste 1 ermittelt, die laut Definition eigentlich vorgegeben sind.
Belli schrieb:
Soweit ich mich erinnere, sind 0 und 1 per Definition Fibonacci-Zahlen, die Bildungsregel 'vorherige + vorvorherige' gilt erst ab der nächsten.
Das stimmt, ja. Laut Definition ist mein Code nicht (ganz) korrekt.
-
monstermunchkin schrieb:
Das stimmt, ja. Laut Definition ist mein Code nicht (ganz) korrekt.
Mhm ... ich würde sagen, der Code ist korrekt, solange er das richtige Ergebnis ausspuckt ...