我从leetcode获取此代码.
class Solution(object):
def myPow(self, x, n):
if n == 0:
return 1
if n == -1:
return 1 / x
return self.myPow(x * x, n / 2) * ([1, x][n % 2])
Run Code Online (Sandbox Code Playgroud)
此代码用于实现poe(x, n),这意味着x**n在Python中.
我想知道为什么它可以实现pow(x, n).
它看起来没有意义......
我明白
if n == 0:
and
if n == -1:
Run Code Online (Sandbox Code Playgroud)
但核心代码:
self.myPow(x * x, n / 2) * ([1, x][n % 2])
Run Code Online (Sandbox Code Playgroud)
真的很难理解.
顺便说一句,这段代码仅适用于Python 2.7.如果你想在Python 3上进行测试,你应该改变
myPow(x*x, n / 2) * ([1, x][n % 2])
Run Code Online (Sandbox Code Playgroud)
至 …