题目:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
代码(一):
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
return base**exponent
代码思路:python 有直接调用的工具20ms
代码(二):
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
# write code here
if exponent == 0:
return 1
elif base == 0:
return 0
if exponent < 0:
return 1/self.new(base,-exponent)
else:
return self.new(base, exponent)
def new(self,base,exponent):
if exponent==1:
return base
if exponent%2 == 0:
a = self.new(base,exponent//2)**2
else:
a = self.new(base,(exponent-1)//2)**2 *base
return a
一个更加省时间的做法 21ms
代码思路:对半分o(logn),如果exponent是偶数,那就是base0.5exponent*base0.5exponent;如果是偶数就是base(exponent-1)//2*base(exponent-1)//2**base