Fibonacci Folge mit Python?
3 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren
Meinst du so?
Dies gibt die ersten zehn Zahlen (exklusive null) aus. Diese Anzahl kannst du mit der Variable max verändern.
tavkomann
02.08.2017, 23:46
@ralphdieter
Das ist ja praktisch. Ich habe Python nie wirklich gelernt, deshalb wusste ich das noch nicht. Werde ich mir aber merken.
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Python
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 )
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, Python
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 ;).
xxxcyberxxx
02.08.2017, 22:06
@Tuxgamer2
jup, aber OJ hat ja nichts genaues gefragt. Rekursiv wär da das kürzeste ;)
ralphdieter
02.08.2017, 23:17
@xxxcyberxxx
Als Generator geht's in vier Zeilen. Zeig mal was kürzeres!
Dafür gibt's in Python eine wunderschöne Abkürzung:
Das ist dieselbe Technik wie beim Vertauschen: