3 ms·
You can do a similar thing (that's around 2-3x faster) with a trampoline: def factorial(n): res = fac(n) while callable(res): res = res
by _aavaa_ 3y ago
You can do a similar thing (that's around 2-3x faster) with a trampoline:
def factorial(n):
res = fac(n)
while callable(res):
res = res()
return res
def fac(n, acc=1):
if n == 1:
return acc
else:
return lambda: fac(n-1, n*acc)