Create method fact_for for exercise 3

This commit is contained in:
Hussein Kabbout 2020-09-23 18:28:03 +02:00
parent df0a438ada
commit 455769b152

View File

@ -1,4 +1,37 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import numpy as np
import timeit
def fact_rec(n):
# y = fact_rec(n) berechnet die Fakultät von n als
# fact_rec(n) = n * fact_rec(n - 1) mit fact_rec(0) = 1
# Fehler, falls n <0 oder nicht ganzzahlig
if n < 0 or np.trunc(n) != n:
raise Exception('The factorial is defined only for positive integers')
if n <= 1:
return 1
else:
return n*fact_rec(n-1)
def fact_for(n):
fak = 1
for num in range(n):
fak *= n
n -= 1
return fak
if __name__ == "__main__": if __name__ == "__main__":
pass t1 = timeit.repeat(
"fact_rec(500)",
"from __main__ import fact_rec",
number=100)
print(t1)
t2 = timeit.repeat(
"fact_for(500)",
"from __main__ import fact_for",
number=100)
print(t2)