def fact(n):if n <= 1:return 1temp = fact(n-1)product = temp * nreturn productprint(fact(4))最后结果是24,请解释一下为什么最后temp=6的时候n=4,谢谢!
1 回答
青春有我
TA贡献1784条经验 获得超8个赞
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)的值。
添加回答
举报
0/150
提交
取消