思路:快速幂
demo:a的11次方,11可表示为1011,则可表示为a(2**0+2**1+2**3)
class Solution: def myPow(self, x: float, n: int) -> float: if n < 0:x,n = 1/x,-n res = 1 while n: if n&1: res *= x x *= x n >>= 1 return res
demo:a的11次方,11可表示为1011,则可表示为a(2**0+2**1+2**3)
class Solution: def myPow(self, x: float, n: int) -> float: if n < 0:x,n = 1/x,-n res = 1 while n: if n&1: res *= x x *= x n >>= 1 return res