【代码】 使用递归函数计算阶乘(factorial)
def factorial1(n):
if n == 1:
return 1
return n * factorial1(n - 1)
注意使用上面的递归函数实现的阶乘计算量很有限,因为这个方法需要的栈空间很多,一般的pc提供给程序的栈空间又有限。用其他方法计算阶乘则会因为栈空间不断释放而实现大阶乘计算。
【案例】
def factorial2(n):
x = 1
for i in range(n):
x *= n
n -= 1
def factorial1(n):
if n == 1:
return 1
return n * factorial1(n - 1)
print(x)
factorial2(10000)
print(factorial1(1000))
运行结果:
注:factorial2(10000)的结果太长,截图未截全。