- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
保证base和exponent不同时为0
- Java 代码
public class Solution {
public double Power(double base, int exponent) {
if(exponent == 0) return 1;
if(exponent < 0) return 1/power(base, -exponent);
return power(base, exponent);
}
public double power(double base, int exponent){
if(exponent == 1) return base;
double res = power(base, exponent>>1);
if((exponent & 1) == 1) return res * res * base;
return res* res;
}
}
class Solution {
public:
double Power(double base, int exponent) {
if(exponent==0) return 1;
if(exponent==1) return base;
if(exponent<0) return 1/Power1(base,abs(exponent)) ;
else return Power1(base,exponent);
}
double Power1(double base, int exponent) {
if(exponent==0) return 1;
if(exponent==1) return base;
double result = Power1(base,exponent>>1);
result*=result;
if(exponent&1 == 1)
result*=base;
return result;
}
};