def fib_for_loop(n, a=0, b=1):
for _ in range(n):
a, b = b, a+b
return a
def fib_while_loop(n, a=0, b=1):
while True:
if n < 1: return a
a, b = b, a+b
n = n-1
def fib_tail_recursive(n, a=0, b=1):
if n < 1: return a
return fib_tail_recursive(n-1, b, a+b)
def fib_naive_recursive(n):
if n < 1: return 0
if n < 2: return 1
return fib_naive_recursive(n-1) + fib_naive_recursive(n-2)
def fib_generative(n, a=0, b=1):
for _ in range(n):
yield a
a, b = b, a+b
# driver code below
for i in range(7):
print(fib_for_loop(i), end=' ')
print()
for i in range(7):
print(fib_while_loop(i), end=' ')
print()
for i in range(7):
print(fib_naive_recursive(i), end=' ')
print()
for i in range(7):
print(fib_tail_recursive(i), end=' ')
print()
for i in fib_generative(7):
print(i, end=' ')
To embed this project on your website, copy the following code and paste it into your website's HTML: