为了账号安全,请及时绑定邮箱和手机立即绑定

python编程recursion

python编程recursion

慕丝7291255 2018-08-27 00:00:06
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)的值。

查看完整回答
反对 回复 2018-10-13
  • 1 回答
  • 0 关注
  • 614 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信