不考虑大数问题,
double Power(double base, int exponent) {
//如果底数为0,且幂方为负数
//注意浮点型判定相等不能直接使用==
if(base - 0.0 > -0.0000001 && base - 0.0 < 0.0000001 && exponent < 0)
return 0;
if(base == 1 || exponent == 0)//如果底数为1,或幂方为0
return 1;
if(exponent == 1)//如果幂方为1,直接返回底数
return base;
double result;
if(exponent < 0)//如果幂方为负数
{
exponent = (unsigned int)(- exponent);//负数取其绝对值
result = 1.0;
for(int i = 0; i < exponent; i++)
{
result *= base;
}
result = 1.0 / result;
}
else
{
result = 1.0;
for(int i = 0; i < exponent; i++)
{
result *= base;
}
}
return result;
}