思路:折半法,初始化一个i,使他等于n的绝对值(因为n有正有负,先全部按正计算,负的最后取倒数就可以),对于i进行折半,如果折半值是2的倍数,就将x乘本身,如果不是2的倍数,就要将结果乘一个x后,再将x乘他本身
class Solution:
def myPow(self, x: float, n: int) -> float:
res = 1
i = abs(n) #取n的绝对值
while i != 0:
if i % 2 != 0:
res *= x
x *= x
i= i // 2
return res if n > 0 else 1/res