fhqitxu 发表于 2017-5-24 12:29:53

python第22课课后题动动手答案疑问

本帖最后由 fhqitxu 于 2017-5-24 12:32 编辑

使用递归编写一个power()函数模拟内建函数pow(),即power(x,y)为计算并返回x的y次幂的值。
def power(x, y):
    if y:
      return x * power(x, y-1)
    else:
      return 1
   
print(power(2, 3))


这段程序中return x * power(x, y - 1),是怎么进行运算的,求过程或解释,幂运算在表达式中是怎么计算的

ButcherRabbit 发表于 2017-5-24 12:34:28

def power(x, y):
    if y:
      return x * power(x, y-1)
    else:
      return 1
   
print(power(2, 3))


power(2,3)      return   2*power(2,2)

power(2,2)      return   2*power(2,1)

power(2,1)      return   2*power(2,0)

power(2,0)      return   1

逆推回去
power(2,3)      return   2*power(2,2) = 2*2*power(2,1) = 2*2*2*power(2,0) = 2*2*2*1
页: [1]
查看完整版本: python第22课课后题动动手答案疑问