def factorial_recursive(n):
if n == or n == 1:
return 1
return n * factorial_recursive(n-1)
A
def factorial_non_recursive(n):
res = 1
for i in range(2, n+1):
res *= i
return res
B
def factorial_non_recursive(n):
res = 1
for i in range(1, n):
res *= i
return res
C
def factorial_non_recursive(n):
if n < :
raise ValueError("n必须为非负整数")
res = 1
for i in range(1, n):
res *= i
return res
D
def factorial_non_recursive(n):
if n < :
raise ValueError("n必须为非负整数")
stack = []
while n > :
stack.append(n)
n -= 1
res = 1
while stack:
res += stack.pop()
return res