Fibonacci-Reihe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
red | Ali
User
Beiträge: 34
Registriert: Samstag 31. Oktober 2020, 16:39

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)
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
red | Ali
User
Beiträge: 34
Registriert: Samstag 31. Oktober 2020, 16:39

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
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nein, sie macht nicht das gleiche. Sie ruft sich rekursiv auf. Das ist ja gerade der Clou bei Fibonacci.
red | Ali
User
Beiträge: 34
Registriert: Samstag 31. Oktober 2020, 16:39

Ah danke
Antworten