#include // factorial operation // fac(N) = fac(N-1) * N if N > 1 // fac(1) = 1 // recursive version of factorial int fac(int n) { int temp; cout << "before recursive call: " << n << endl; if (n > 1) temp = fac(n-1) * n; else temp = 1; cout << "after recursive call: " << n << ", " << temp << endl; return temp; } // non-recursive version of factorial int facNR(int n) { int result = 1; int i; for (i=1; i<=n; i++) result = result * i; return result; } int main() { int i; int rval, nrval; for (i = 1; i < 10; i++) { rval = fac(i); nrval = facNR(i); cout << i << ": factorial R: " << rval << ", factorial NR: " << nrval << endl << endl ; } }