Implement pow(x, n)
1:特殊情况,x为0, 1, -1, n为0, 1, 2: n为负数的时候, 3:采用递归的方法进行计算,注意n为奇数和偶数的情况
double pow(double x, int n)
{
if(x == 0 || x == 1)
{
return x;
}
if(x == -1)
{
return ((n & 1) == 0 ? 1 : -1);
}
if(n == 0 )
{
return 1;
}
if(n == 1)
{
return x;
}
bool flag = false;
if(n < 0 )
{
flag = true;
n = -n;
}
double result = pow(x, n >> 1);
result = result * result;
if((n & 1) == 1)
{
result = x * result;
}
return (flag == true ? 1.0 / result : result);
}