给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
class Solution {
public:
double Power(double base, int exponent) {
//判断exponent的正负号
bool exponent_positive=true;
if(exponent<0){
if(base==0){
return NULL;
}
exponent_positive=false;
exponent=-exponent;
}
else if(exponent==0)
{
if(base==0)
return NULL;
return 1;
}
double temp=base;
double result=1;
while(exponent!=0){
if((exponent&1)==1){
result=result*temp;
}
temp=temp*temp;
exponent=exponent>>1;
}
return exponent_positive?result:1/result;
}
};