題目描述
給定一個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