马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 一个账号 于 2020-3-4 11:37 编辑
Python FAQ 009 递归(一)
问题
这个递归是什么意思:
def factorial(num=1):
if num == 1:
return 1
else:
return num * factorial(num-1)
factorial(5)
解答
递归就是一直调用自己,return 1 就是自己调用自己的一个终结点。
如果函数没有一个终结点,那就变成了从前有座山,山里有座庙,庙里有个老和尚正给小和尚讲故事,故事讲的是,从前有座山,山里有座庙,庙里有个老和尚正给小和尚讲故事......
最后,程序崩溃了。
factorial(5) 调用过程:
factorial(5) -> factorial(4) -> factorial(3) -> factorial(2) -> factorial(1)
factorial(5) 返回过程:
factorial(1) 返回 1,factorial(2) 返回 2 * factorial(1) 的结果也就是 2,factorial(3) 返回 3 * 2,factorial(4) 返回 4 * 6,factorial(5) 返回 5 * 24。
最终的结果就是 120。
|