Odpowiedź :
Przpraszam za to że cały kod jest po angielsku, przyzwyczajenie.
Czas jest wypisywany w notacji naukowej, ponieważ czasy dla małych silni są nieduże
def recursive_factorial(n):
if n < 2:
return n
else:
return n*recursive_factorial(n-1)
def iterative_factorial(n):
data = []
data.append(1)
for i in range(2,n+1):
data.append(i*data[-1])
return data[-1]
from timeit import default_timer as timer
n=20
start = timer()
iterative_factorial(n)
print("iterative" , timer()-start)
start = timer()
recursive_factorial(n)
print("recursive" , timer()-start)
n=34
start = timer()
iterative_factorial(n)
print("iterative" , timer()-start)
start = timer()
recursive_factorial(n)
print("recursive" , timer()-start)
n=50
start = timer()
iterative_factorial(n)
print("iterative" , timer()-start)
start = timer()
recursive_factorial(n)
print("recursive" , timer()-start)
n=40
start = timer()
iterative_factorial(n)
print("iterative" , timer()-start)
start = timer()
recursive_factorial(n)
print("recursive" , timer()-start)