Seite 1 von 1

Fibonacci-Reihe

Verfasst: Mittwoch 23. Dezember 2020, 11:43
von red | Ali
Hallo,
ich habe mir für heute mal vorgenommen, ein Script zu schreiben, welches die Fibonacci-Reihe berechnet. Ich bin 14 geworden vor ein paar Tagen, weswegen ich noch nicht die Fibonacci Reihe kenne. Ich weiß jedoch, wie sie berechnet wird. Nun meine Frage:
Ich weiß nicht, wie ich das anstellen soll. Das ist bisher mein Code. Ich kann verstehen, warum er mir immer wenn ich zum Beispiel 5 eingebe, 7 zurück gibt.
Ich möchte aber bei jeder Zahl halt die Fibonaccizahl davor + die Fibonaccizahl 2 davor berechnen. Ich hoffe man versteht wie ich es meine.

Code: Alles auswählen

def fib(n):
    if n < 2:
        return n
    else:
        return (int(n - 1)) + (int(n - 2))


input_user = int(input('Zahl: '))
var = fib(input_user)
print(var)

Re: Fibonacci-Reihe

Verfasst: Mittwoch 23. Dezember 2020, 12:03
von __blackjack__
@red | Ali: Du addierst da einfach nur n-1 und n-2. Du willst aber die Fibonacci-Zahl von n-1 und die Fibonacci-Zahl von n-2 addieren. Dazu brauchst Du eine Funktion die Fibonaccizahlen berechnet und die Du da mit diesen beiden Werten aufrufen musst. Und so eine Funktion schreibst Du da ja gerade. Die heisst `fib()`. Benutze sie einfach.

Du hast da auch ein paar Klammern und `int()`-Aufrufe zu viel. Und man muss nicht jedes kleine Zwischenergebnis an einen (nichtssagenden) Namen binden.

Re: Fibonacci-Reihe

Verfasst: Mittwoch 23. Dezember 2020, 13:07
von red | Ali
Aber was macht die genau? Das verstehe ich nicht.
Also was macht die Funktion, wenn ich diese aufrufe? Die macht doch das gleiche, was ich geschrieben habe

Re: Fibonacci-Reihe

Verfasst: Mittwoch 23. Dezember 2020, 13:33
von __deets__
Nein, sie macht nicht das gleiche. Sie ruft sich rekursiv auf. Das ist ja gerade der Clou bei Fibonacci.

Re: Fibonacci-Reihe

Verfasst: Mittwoch 23. Dezember 2020, 13:46
von red | Ali
Ah danke