From 966422abc25f6a714d89526b7996e17c78e85b8f Mon Sep 17 00:00:00 2001 From: nicolas <821778+novalic@users.noreply.github.com> Date: Mon, 15 Aug 2022 03:15:23 +0300 Subject: [PATCH] task(style): improves styling and renames functions --- fibonacci.py | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/fibonacci.py b/fibonacci.py index 5bed0c8..f86a8e8 100644 --- a/fibonacci.py +++ b/fibonacci.py @@ -1,41 +1,43 @@ -import functools, timeit +import functools +import timeit -def fibo_rec(num): + +def fibonacci_recursive(num): if num == 0: return 0 elif num == 1: return 1 else: - return fibo_rec(num - 1) + fibo_rec(num - 2) + return fibonacci_recursive(num - 1) + fibonacci_recursive(num - 2) -def fibonacci_dp(num, table): - if table[num] >= 0: - return table[num] +def fibonacci_dynamic_programming_aux(num, table): + if table[num] >= 0: + return table[num] - if (num == 0 or num == 1): - res = num - else: - res = fibonacci_dp(num - 1, table) + fibonacci_dp(num - 2, table) + if num == 0 or num == 1: + res = num + else: + res = fibonacci_dynamic_programming_aux(num - 1, table) + fibonacci_dynamic_programming_aux(num - 2, table) - table[num] = res + table[num] = res - return res + return res -def fibo_dp(num): +def fibonacci_dynamic_programming(num): table = [-1] * (num + 1) - return fibonacci_dp(num, table) + return fibonacci_dynamic_programming_aux(num, table) number = int(input('Enter a number: ')) -recursive_timer = timeit.Timer(functools.partial(fibo_rec, number)) +recursive_timer = timeit.Timer(functools.partial(fibonacci_recursive, number)) recursive_time = recursive_timer.timeit(1) print(f'Calculating Fibonacci of {number} recursively took {recursive_time} seconds.') -dp_timer = timeit.Timer(functools.partial(fibo_dp, number)) +dp_timer = timeit.Timer(functools.partial(fibonacci_dynamic_programming, number)) dp_time = dp_timer.timeit(1) print(f'Calculating Fibonacci of {number} with dynamic programming took {dp_time} seconds.')