题目:给定一个 double 类型的浮点数 base 和 int 类型的整数 exponent。求 base 的 exponent 次方。
思路:对于数值的整数次方,一种简单的思路就是设置一个result=1,将其乘以exponent次的base,这种思路简单,但是复杂度较高,需要迭代exponent次运算。因此我们采用一种简便的运算方法:
当n为偶数时 f(n) = f(n/2)^2
当n为奇数时 f(n) = f(n/2)^2 * base
Python代码如下:
class Solution:
def Power(self, base, exponent):
if exponent == 1:
return base
elif exponent == 0:
return 1
elif exponent == -1:
return 1.0/base
result = self.Power(base, exponent>>1)
result *= result
if exponent % 2 == 1:
result *= base
return result