解题思路
除了用不断乘以n-1次x以外,可以采用类似于快速幂的算法减少运算次数,核心在于用平方使得指数减半
源代码
class Solution:
def myPow(self, x, n):
"""
:type x: float
:type n: int
:rtype: float
"""
result=1
if n<0:
n=-n
flag=1
else:
flag=0
while n>=1:
if n%2 == 1:
result=result*x
x=x*x
n = int(n/2)
if flag==0:
return result
else:
return 1.0/result