rekursive Variante
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# Berechnung der Fibonacci-Zahl - rekursiv
print("Berechnung der n-ten Fibonacci-")
print("Zahl mit einem rekursiven Algorithmus")
print("=====================================")
print(" ")
# Eingabe
print("Eingabe der Elementnummer:")
print("--------------------------")
zahl = int(input("Elementnummer (ganze Zahl): "))
# Rekursion als Funktion
def Fib_rek(nummer):
if (nummer == 0) or (nummer == 1):
return nummer
else:
print("Rekursiver Aufruf mit:", str(nummer - 1), "und", str(nummer - 2))
return Fib_rek(nummer - 1) + Fib_rek(nummer - 2)
# Funktionsaufruf und Ausgabe
print(" ")
print("Ergebnis:")
print("---------")
print("Die Fibonacci-Zahl Nr.", zahl, "ist", str(Fib_rek(zahl)) + ".")
iterative Variante
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# Berechnung der Fibonacci-Folge - iterativ
print("Berechnung der Fibonacci-Folge bis zur n-ten")
print("Fibonacci-Zahl mit einem iterativen Algorithmus")
print("===============================================")
print(" ")
# Eingabe
print("Eingabe der Elementnummer:")
print("--------------------------")
zahl = int(input("Elementnummer (ganze Zahl): "))
print(" ")
ergebnis = [] # leere Liste für die Fibonacci-Folge
# Iteration
f0 = 0
f1 = 1
f2 = 0
i = 0
while i < zahl:
i = i + 1
f0 = f1
f1 = f2
f2 = f1 + f0
print("Zwischenergebnis nach Schleifendurchlauf Nr.", str(i) + ":", str(f2))
ergebnis.append(f2)
# Ausgabe
print(" ")
print("Die Fibonacci-Zahl Nr.", zahl, "ist", str(f2) + ".")
print("Die Fibonacci-Folge bis zum Element Nr.", str(zahl), "lautet:")
print(ergebnis)