给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
分析:比如求a^b,其中b是可以拆成二进制形式的,比如
这样计算就很简单了,首先用b&1来判断最低位是不是1,然后再通过移位,这样3次就可以计算出来,具体计算代码如下:
def Power(self, base, exponent):
# write code here
if base==0:
return 0
if exponent==0:
return 1
if exponent<0:
if base==0:
return -1
return 1.0/self.Power(base,-exponent)
res=1
while exponent!=0:
if exponent&1:
res*=base
base*=base
exponent>>=1
return res