- Pow(x, n)
这样写计算顺序是 x 先平方再平方,再平方。大大减少了乘法的次数。
class Solution:
def myPow(self, x: float, n: int) -> float: # using python 3
if n == 0 :
return 1
if n < 0 :
return 1/self.myPow(x, -n)
if n%2:
return x*self.myPow(x*x, n//2)
else:
return self.myPow(x*x, n//2)
刚开始还把递归写成了 return ( myPow( x, n//2 ) )**2 而不是 return self.myPow(x*x, n//2), 然后程序就报错了。。。
OverflowError: (34, 'Result too large')
只是为什么呢。。
238

被折叠的 条评论
为什么被折叠?



