【发布时间】:2014-04-23 18:45:21
【问题描述】:
我正在查看递归的阶乘示例,并希望确保我正确理解它!
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
我说得对吗:
阶乘(4) = 阶乘(4-1) * 4 = 阶乘(3-1) *3 *4 = 阶乘(2-1) *2 *3 *4 = 阶乘(1-1) *1 * 2 *3 *4 = 24
因为 factorial(1-1) = factorial(0) 作为基本情况显示 = 1,然后我们乘以 2,然后是 3,然后是 4。
这是正确的看待它的方式吗?
提前致谢!
【问题讨论】:
-
确实是正确的思考方式。
-
查看递归的正确方法,但您假设乘法是可交换的。应该是
4*3*2*1*factorial(1-1)甚至是4*(3*(2*(1*factorial(1-1))))
标签: python recursion factorial