python编程recursion

def fact(n):
if n <= 1:
return 1
temp = fact(n-1)
product = temp * n
return product

print(fact(4))

最后结果是24,请解释一下为什么最后temp=6的时候n=4,谢谢!

慕丝7291255
浏览 616回答 1
1回答

青春有我

1、这是递归;2、递归过程中,第一层运算时n=4,则n-1=3,这个时候temp=fact(n-1),也就是temp=fact(3)。但由于递归没有完成,这个时候会通过计算temp=fact(2),temp=fact(1)两层递归返回temp=fact(3)的值,也就是1*2*3=6.3、就是说在递归过程内部最高算到fact(n-1)的值,递归结束时才返回n*fact(n-1)的值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python