#include #include using namespace std; int recExp(int, int); int stackExp(int, int); int main () { int i,j; for(i=1;i<5;i++) { for(j=1;j<5;j++) { cout << i << ", " << j << " = " << recExp(i,j) << " or " << stackExp(i,j) << endl; } } return(0); } int recExp(int base, int exp) { if (exp == 0) { return(1); } if (exp == 1) { return(base); } return(base*recExp(base, exp -1)); } int stackExp(int base, int exp) { stack S; int rv= 1; while(exp >= 1) { S.push(base); exp --; } while(!S.empty()){ rv = rv * S.top(); S.pop(); } return(rv); }