猪猪虾 发表于 2020-3-22 21:59:29

22讲,递归,课后习题2,运行有误

# 使用递归编写一个 power() 函数模拟内建函数 pow(),即 power(x, y) 为计算并返回 x 的 y 次幂的值。
def power(x,y):
    while y!=0:
       return x*power(x,y-1)

number1=int(input("enter an interger"))
number2=int(input("enter an interger"))
result=power(number1,number2)
print(result)


   

sunrise085 发表于 2020-3-22 22:08:18

你的递归最深层没有返回值。当y=0时,没有写返回值啊
def power(x,y):
    if y!=0:
       return x*power(x,y-1)
    return 1

number1=int(input("enter an interger:"))
number2=int(input("enter an interger:"))
result=power(number1,number2)
print(result)

猪猪虾 发表于 2020-3-22 22:11:32

sunrise085 发表于 2020-3-22 22:08
你的递归最深层没有返回值。当y=0时,没有写返回值啊

return 1 是干什么意思,目的是什么

sunrise085 发表于 2020-3-22 22:13:05

猪猪虾 发表于 2020-3-22 22:11
return 1 是什么意思,刚开始学,不太明白,目的是什么

返回值是1啊。最深层次的时候,y=0,任何数的0次方都是1啊

猪猪虾 发表于 2020-3-22 22:14:39

sunrise085 发表于 2020-3-22 22:13
返回值是1啊。最深层次的时候,y=0,任何数的0次方都是1啊

懂了懂了,蟹蟹
页: [1]
查看完整版本: 22讲,递归,课后习题2,运行有误