给定一个 double 类型的浮点数 base 和 int 类型的整数 exponent,求 base 的 exponent 次方。
解题思路
下面的讨论中 x 代表 base,n 代表 exponent。
因为 (x*x)n/2 可以通过递归求解,并且每次递归 n 都减小一半,因此整个算法的时间复杂度为 O(logN)。
class Solution:
def Power(self, base, exponent):
if exponent==0:
return 1
if exponent<0:
return 1.0/self.Power(base, -exponent)
v = self.Power(base*base, exponent//2)
if exponent%2==0:
return v
else:
return base*v
class Solution:
def Power(self, base, exponent):
# write code here
return base**exponent