| recursion/power-fast.c - Den hurtige power funktion. | Lektion 11 - slide 15 : 27 Program 1 |
double power(double number, int pow){
double result;
printf("power(%lf,%i)\n", number, pow); // reveals the computation
if (pow == 0)
result = 1.0;
else if (pow > 0 && even(pow))
result = sqr(power(number,pow/2));
else if (pow > 0 && odd(pow))
result = number * power(number, pow - 1);
else
result = 1.0 / power(number, -pow);
return result;
}