Ich habe hier gerade einen hänger. Ich möchte eine Funktion schreiben, die mir den Wert TRUE zurückgibt, wenn eine bestimmte natürliche Zahl in einer Zahlenfolge vorkommt.
Ich habe als Bespiel hier mal die Fibonacci-Zahl genommen.
Ich möchte in diesen Beispiel testen, ob die Zahl 13 auch eine Fibonacci-Zahl ist. Ich bin sehr unzufrieden mit meiner Lösung. Ich habe den Ergebnissraum in eine Liste gesteckt und iterier dann über diese und vergleiche ob die natürliche Zahl in der Liste ist. True, wenn ja, False, wenn nein. Aber das muss doch auch ohne Liste gehen. Bei grösseren Zahlen wird das doch brutal langsam. Danke für eure Hilfe.
Code: Alles auswählen
#Funktion gibt einen bestimmten Fibonacci-Wert zurück
def fibo(n):
a,b = 0,1
for i in range(n):
a,b = b, a + b
return a
#Funktion testet, ob eine bestimmte natürliche Zahl in der Zahlenfolge enthalten ist.
def check_true_false(n):
liste = []
for i in range(n+1):
liste.append(fibo(i))
print(liste)
if n in liste:
return True
else:
return False
print(check_true_false(13))