实现 pow(x, n) ,即计算 x 的 n 次幂函数。
递归
class Solution(object):
def myPow(self, x, n):
if n<0:
n = -n
return 1/self.help(x, n)
return self.help(x, n)
def help(self, x, n):
if n==0:
return 1
if n%2==0:
return self.help(x*x, n//2)
else:
return self.help(x*x, (n-1)//2)*x
迭代
class Solution(object):
def myPow(self, x, n):
judge = True
if n < 0:
n = -n
judge = False
final = 1
while n > 0:
if n%2 == 0:
x *= x
n //= 2
final *= x
n -= 1
return final if judge else 1/final
位运算
class Solution(object):
def myPow(self, x, n):
judge = True
if n < 0:
n = -n
judge = False
final = 1
while n>0:
if n & 1: #代表是奇数
final *= x
x *= x
n >>= 1 # 右移一位
return final if judge else 1/final