#include #include #include double slow_power(double x, int n) { int i; double r = 1.0; for (i = 0; i < n; i++) r = r * x; return (r); } double power(double x, int n) { if (n == 0) return 1; else if ((n % 2) == 0) return power(x*x, n / 2); else return x * power(x*x, (n - 1) / 2); } int main(void) { double x, value_slow, value; int n; x = 2; n = 10; value_slow = slow_power(x, n); value = power(x, n); printf("slow_power(%lf,%d) = %lf \n", x, n, value_slow); printf("power(%lf, %d) = %lf \n", x, n, value); }