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

请问这个程序的执行原理是什么呢?

请问这个程序的执行原理是什么呢?

叮当猫咪 2019-02-21 04:11:33
def exp(a,b): if b ==1: return a else: return a*exp(a,b-1) print exp(2,3) ...8 print exp(2,4) ...16 对于 return aexp(a,b-1) 这一步中,比如执行exp(2,3)是返回的是:2(2*2)吗? 可是exp明明是一个函数呀,也并没有明确是进行内部的乘法运算,有点迷糊了。(提问有点无知,望见谅)
查看完整描述

1 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

这是递归,也就是函数自己调用自己,是一种把问题分隔简化为相似的小问题来求解的方法

其实对于结果,你单步调试一下就知道了

exp(2,3)
会被化解为
2 * exp(2, 2)
然后再被化解为
2 * 2 * exp(2, 1)
然后再被化解为(这个时候b == 1,所以走第一个if分支)
2 * 2 * 2

查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 592 浏览
慕课专栏
更多

添加回答

举报

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