#! /usr/bin/env python3 def fibonacci(n): if n == 1 or n == 2: return 1 #Rekursiver Funktionsaufruf #return fibonacci(n - 1) + fibonacci(n - 2) fn_1, fn_2 = 1, 1 for i in range(n-2): fn_1, fn_2 = fn_1 + fn_2, fn_1 return fn_1 def fibonacci_folge(n): if n >= 1: #print("yield 1 (fib(1))") yield 1 if n >=2: #print("yield 1 (fib(2))") yield 1 #Rekursiver Funktionsaufruf #return fibonacci(n - 1) + fibonacci(n - 2) fn_1, fn_2 = 1, 1 for i in range(n-2): fn_1, fn_2 = fn_1 + fn_2, fn_1 #print("yield {} (fib({}))".format(fn_1, i+3)) yield fn_1 #print("fib(5) =", fibonacci(5)) # # print("fib(40) =", fibonacci(400)) for nr, fib in enumerate(fibonacci_folge(30)): print(nr+1, fib, sep=' -> ') #print(list(fibonacci_folge(30))) #print([i for i in fibonacci_folge(10)])