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

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明明是一个函数呀,也并没有明确是进行内部的乘法运算,有点迷糊了。(提问有点无知,望见谅)

叮当猫咪
浏览 593回答 1
1回答

慕码人8056858

这是递归,也就是函数自己调用自己,是一种把问题分隔简化为相似的小问题来求解的方法 其实对于结果,你单步调试一下就知道了 exp(2,3) 会被化解为 2 * exp(2, 2) 然后再被化解为 2 * 2 * exp(2, 1) 然后再被化解为(这个时候b == 1,所以走第一个if分支) 2 * 2 * 2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python