Skip to content

Commit ae9a53b

Browse files
committed
recursion/fibonacci
1 parent 925d1d9 commit ae9a53b

File tree

4 files changed

+58
-0
lines changed

4 files changed

+58
-0
lines changed

recursion/fibonacci-iterative.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
def fibonacci(n: int) -> int:
2+
if n <= 1:
3+
return 0
4+
elif n == 2:
5+
return 1
6+
prev: int = 0
7+
curr: int = 1
8+
for _ in range(n - 2):
9+
prev, curr = curr, prev + curr
10+
return curr
11+
12+
13+
for i in range(6):
14+
print(fibonacci(i))

recursion/fibonacci-memoization.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
nums: dict = {}
3+
4+
5+
def fibonacci(n: int) -> int:
6+
if n <= 1:
7+
return 0
8+
elif n == 2:
9+
return 1
10+
else:
11+
if n in nums:
12+
return nums[n]
13+
nums[n] = fibonacci(n - 1) + fibonacci(n - 2)
14+
return nums[n]
15+
16+
17+
for i in range(6):
18+
print(fibonacci(i))
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
def fibonacci(n: int) -> int:
2+
if n <= 1:
3+
return 0
4+
elif n == 2:
5+
return 1
6+
else:
7+
return fibonacci(n - 1) + fibonacci(n - 2)
8+
9+
10+
for i in range(6):
11+
print(fibonacci(i))

recursion/fibonacci-recursive.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
def fibonacci(n: int) -> int:
2+
3+
def fibonacci_helper(num: int, prev: int = 0, curr: int = 1) -> int:
4+
if num <= 1:
5+
return prev
6+
elif num == 2:
7+
return curr
8+
else:
9+
return fibonacci_helper(num - 1, curr, prev + curr)
10+
11+
return fibonacci_helper(n)
12+
13+
14+
for i in range(6):
15+
print(fibonacci(i))

0 commit comments

Comments
 (0)