Fibonacci Folge mit Python?

3 Antworten

Meinst du so?

Dies gibt die ersten zehn Zahlen (exklusive null) aus. Diese Anzahl kannst du mit der Variable max verändern.

https://repl.it/Ju0u/0

oldLast = last 
last += preLast
preLast = oldLast

Dafür gibt's in Python eine wunderschöne Abkürzung:

preLast, last = last, last+preLast

Das ist dieselbe Technik wie beim Vertauschen:

x, y = y, x
1
@ralphdieter

Das ist ja praktisch. Ich habe Python nie wirklich gelernt, deshalb wusste ich das noch nicht. Werde ich mir aber merken.

1
def fibonacci ( x0=0, x1=1 ):
yield x0
while True:
yield x1
x0, x1 = x1, x0+x1

from itertools import islice

for f in enumerate(1, islice(fibonacci(1,1), 1000) ):
print "f(%4d) =%5d" % f

Mein Klassiker: Die Argumente von enumerate() sind vertauscht. So geht's:

for f in enumerate(islice(fibonacci(1,1), 1000), 1 ):

Und Klammern bei printf schaden auch nicht:

   print( "f(%4d) =%5d" % f )
0

Ja, geht. Einfach eine Funktion rekursiv aufrufen. 

Nächstes mal die Frage genauer stellen.

Oder iterativ - und damit die Laufzeit von richtig schlecht auf eigentlich ganz gut drücken ;).

2
@Tuxgamer2

jup, aber OJ hat ja nichts genaues gefragt. Rekursiv wär da das kürzeste ;)

0

Was möchtest Du wissen?