给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
方法一:
public class Solution {
public double Power(double base, int exponent) {
if(exponent==0) //如果exponent为0,直接返回1(0的任何次方为0)
return 1;
int temp=exponent>0?exponent:-exponent;
double res=1.0;
for(int i=1;i<=temp;i++){
res=res*base;
}
if(exponent<0) //如果exponent大于0,直接返回res;如果exponent小于0,res=1/res,然后返回。
res=1/res;
return res;
}
}
方法二:
public class Solution {
public double Power(double base, int exponent) {
double res=power(base,exponent>0?exponent:-exponent);
return exponent>0?res:1/res;
}
public double power(double base,int exponent){
if(exponent==0)
return 1;
if(exponent==1)
return base;
if(exponent%2==0)
return power(base,exponent/2)*power(base,exponent/2);
return power(base,exponent/2)*power(base,exponent/2)*base;
}
}