【发布时间】:2012-07-26 11:41:25
【问题描述】:
我真的在努力思考递归的工作原理并理解递归算法。例如,当我输入 5 时,下面的代码返回 120,请原谅我的无知,我就是不明白为什么?
def fact(n):
if n == 0:
return 1
else:
return n * fact(n-1)
answer = int (raw_input('Enter some number: '))
print fact(answer)
【问题讨论】:
-
您需要向我们解释您到底不明白什么。你认为它应该返回什么?
-
另外,您对函数的缩进略有偏差。
-
您看到在
fact内部再次调用了同样的fact?当 n 等于 0 时,这种自调用会停止吗?并且每调用一次 n 就会降低一个? -
感谢所有伟大的解释。我肯定会每天练习,因为它似乎是编写高效算法必不可少的。
标签: python algorithm python-2.7 recurrence induction