题解 | #数值的整数次方#
数值的整数次方
http://www.nowcoder.com/practice/1a834e5e3e1a4b7ba251417554e07c00
#define MIN 0.000001
double Power_unsigned(double base, unsigned int exponent)
{
int i;
double result = 1.0;
if (exponent == 0)
return 1;
if (exponent == 1)
return base;
result = Power_unsigned(base, exponent >> 1);
result *= result;
if (exponent & 0x1)
result *= base;
return result;
}
double Power(double base, int exponent ) {
double result = 1.0;
if (base<MIN && base>-MIN && exponent < 0)
return 0.0;
unsigned int absE = (unsigned int)(exponent);
if (exponent<0)
absE = (unsigned int)(-exponent);
result = Power_unsigned(base, absE);
if (exponent < 0)
result = 1.0 / result;
return result;
}


查看6道真题和解析