diff --git a/4_9_Exercises/Question 2.py b/4_9_Exercises/Question 2.py new file mode 100644 index 0000000000000000000000000000000000000000..d3240ff1efc4cec021e8af8b8dee27cddb2ceb42 --- /dev/null +++ b/4_9_Exercises/Question 2.py @@ -0,0 +1,19 @@ +# question 2 +def fibonacci(n): + # inefficient recursive fibonacci, counts down from "n" while each iteration spawns 2 recursive calls + if n == 0: + return 0 + if n == 1: + return 1 + else: + return fibonacci(n - 1) + fibonacci(n - 2) + + +def fast_fibonacci(n, n_minus_2=0, n_minus_1=1): + # efficient recursive fibonacci, by going forward with each iteration spawning only 1 recursive call + if n == 0: + return 0 + if n == 1: + return n_minus_1 + else: + return fast_fibonacci(n - 1, n_minus_1, n_minus_1 + n_minus_2) \ No newline at end of file