// powerDriver.cpp


#include <iostream>
using namespace std;

double power(double x, int n);

int main()
{
  cout << "To compute x^n, enter x and n: ";
  double x; int n;
  cin >> x >> n;
  
  cout << x << '^' << n << " == " << power(x, n) << endl;



  return 0;
}

/* power() recursively computes x raised to the power n.
 * Receive:  x, a real value, and
 *           n, an integer
 * Return:   x raised to the power n
 ******************************************************/

double power(double x, int n)
{
if (n == 0)
return 1.0;                    //anchor case
else if (n > 0)
return power (x, n - 1) * x;   //inductive step (n > 0)
   else                             // invalid parameter n
   {
      cerr << "*** power(x,n): n is negative.\n";
      return -1.0;
   }
}
