为什么总是将输出显示为1?

clo*_*nny 2 python python-2.7

def power(x,n):
    if n == 0:
        return 1
    elif n % 2 == 0:
        return power(x * x, n % 2)
    else:
        return x * power(x, n - 1)
print power(2,3)
Run Code Online (Sandbox Code Playgroud)

我给它的输入是显示1还是2.任何人都可以在我出错的地方帮助我.我是编程的新手.谢谢

cam*_*amz 5

尝试更改此行:

return power(x * x, n % 2)
Run Code Online (Sandbox Code Playgroud)

对此:

return power(x * x, n / 2)
Run Code Online (Sandbox Code Playgroud)

如果n可以被2整除,那么你计算的pow(x * x, 0)总是会返回1.