// // simple recursive function to compute non-negative integer powers, // plus test program // #include #include // has EXIT_SUCCESS #include // has assert() using namespace std; // function to compute integer power // pre: e >= 0 // post: returns e-th power of b double power(double b, int e) { assert(e >= 0); if (e == 0) return 1; else if (e % 2 == 0) return power(b*b, e >> 1); else return b * power(b*b, e >> 1); } // // test program // int main(void) { double b; int e; cout << "Enter b (floating-point) and e (non-negative integer):\n"; cin >> b >> e; cout << b << " to the " << e << "-th power is " << power(b, e) << endl; return EXIT_SUCCESS; }