题目描述
给定一个double
类型的浮点数base
和int
类型的整数exponent
。求base
的exponent
次方。
保证base
和exponent
不同时为0
。
分析
- 解法一: 单层循环,时间复杂度O(abs(exponent))。
- 解法二:利用动态规划思想,递归实现。时间复杂度O(logn)。
代码
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exp):
if exp < 1:
return 1/self.getPower(base, -exp)
else:
return self.getPower(base, exp)
def getPower(self, base, exp):
res = 1
for i in range(exp):
res *= base
return res
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exp):
if exp < 1:
return 1/self.getPower(base, -exp)
else:
return self.getPower(base, exp)
def getPower(self, base, exp):
if exp == 0:
return 1
elif exp == 1:
return base
res = self.getPower(base, exp>>1)
res *= res
if exp & 1:
res *= base
return res