题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
方法1O(N):
public class Solution {
public double Power(double base, int exponent) {
if(exponent==0)
return 1;
if(exponent>0)
return Power(base,exponent-1)*base;
else
exponent*=-1;
return 1/(Power(base,exponent-1)*base);
}
}
方法2O(logN):
public class Solution {
public double Power(double base, int exponent) {
double ans=1;
if(exponent==0)
return 1;
else if(base==0)
return 0;
else if(exponent>0){
if(exponent==1)
return base;
while(exponent!=0){
if((exponent&1)==1)
ans=ans*base;
exponent=exponent>>1;
base*=base;
}
return ans;
}
else {
exponent*=-1;
return 1/Power(base,exponent);
}
}
}