Power of a Number (x^n) — Fast Exponentiation?
double Power(double x, int n)
Follow on:
{
if (n == 0) return 1;
double temp = Power(x, n / 2);
if (n % 2 == 0)
return temp * temp;
else
return (n > 0) ? x * temp * temp : (temp * temp) / x;
}
Explanation:
Recursive fast power divides exponent by 2 to reduce complexity to O(log n).