def fac_naive_recursive(n):
if n <= 1: return 1
return n * fac_naive_recursive(n-1)
def fac_tail_recursive(n, a=1):
if n < 1: return a
return fac_tail_recursive(n-1, a*n)
def fac_for_loop(n, a=1):
for i in range(1, n+1):
a = a*i
return a
def fac_while_loop(n, a=1):
while True:
if n < 1: return a
a = a*n
n = n-1
def fac_while_loop_2(n, a=1):
while not n < 1:
a = a*n
n = n-1
return a
print(fac_naive_recursive(5))
print(fac_tail_recursive(5))
print(fac_for_loop(5))
print(fac_while_loop(5))
print(fac_while_loop_2(5))
To embed this project on your website, copy the following code and paste it into your website's HTML: