编码看不懂也无法理解,,,,
使用递归编写一个 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))
请问为什么是返回x * power(x, y-1). 根据题意模仿pow()反函数, 不是应该是 return x * power(x-1,y) 本帖最后由 xiaosi4081 于 2020-8-4 20:38 编辑
def power(x, y):
if y: #如果y等于非零值
return x * power(x, y-1)
else:
return 1
print(power(2, 3))
我觉得应该是你理解错了 power(x, y) 为计算并返回 x 的 y 次幂的值。
计算的是x的y次幂,也就是y个x相乘,
每次递归,取出一个x,即y减一,最深层次时,y=0,直接返回1,
你为什么会认为应该是x-1呢 sunrise085 发表于 2020-8-4 20:41
计算的是x的y次幂,也就是y个x相乘,
每次递归,取出一个x,即y减一,最深层次时,y=0,直接返回1,
你 ...
{:9_237:} 本帖最后由 hhh9832 于 2020-8-4 22:09 编辑
在这个题中X是底数,y是次冥所以说y是变化的
例如:2^3=2*2^2
:2^2=2*2^1
:2^1=2*2^0
在此处x=2,y=3
jjx970523 发表于 2020-8-4 20:59
仔细想想,在数学中,xy 是不是应该等于 x*xy-1 而不是 (x-1)y? 永恒的蓝色梦想 发表于 2020-8-4 22:33
仔细想想,在数学中,x 是不是应该等于 x*x 而不是 (x-1)?
你这个是怎么打出来的??
页:
[1]