给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
快速幂的应用,降低时间复杂度。
class Solution {
public:
double Power(double base, int exponent) {
double ans=1;
int n;
if(exponent>0)
{
n=exponent;
}
else if(exponent<0)
{
if(base>=-(1e-6)&&base<=1e-6)
{
return false;
}
else
n=-exponent;
}
else
return 1;
while(n!=0)
{
if((n&1)==1)
{
ans*=base;
}
base*=base;
n>>=1;
}
return (exponent>=0)? ans:(1/ans);
}
};