我们可以用如下公式求a的n次方:
这个公式很容易就能用递归来实现。新的PowerExponent代码如下:
double PowerExponent(double base, unsigned int exponent)
{
if(exponent == 0)
return 1;
if(exponent == 1)
return base;
double result = PowerExponent(base, exponent >> 1);
result *= result;
if(exponent & 0x1 == 1)
result *= base;
return result;
}