|
|
发表于 2019-9-24 21:04:35
|
显示全部楼层
return x * power(x, y-1) 这句是X和 power(x, y-1)函数的返回值相乘。因为一开始我们不知道这结果到底是几。所以设置了,if y 不成立的时候,return 1
先是power(2,3) 一开是的函数赋值
x,y=2,3
if y #此时y=3 条件成立
return 2*power(2,2) #这里调用了函数power此时x,y=2,2但是我们不知道power(2,2)的返回值是多少,所以放在栈中。
if y 此时y=2条件成立
return 2*power(2,1) #x,y=2,1我们还是不知道power(2,1)的返回值是多少
if y 此时y=1条件成立
return 2*power(2,0)#又一次调用了函数,x,y=2,0 这个时候y不成立,所以执行else语句
power(2,0)的时候,我们这才知道函数的返回值是1,现在开始处理之前的。
return 2*power(2,1) # 2*1=2 所以power(2,1)的返回值就是2
return 2*power(2,2) # 2*2 =4 所以power(2,2)的返回值就是4
所以最后power(2,3) 的值就是2*4=8,返回值就是8
所以最后的结果就是8了。
|
|