// Think CS ch. 4 & 5 examples #include #include #include using namespace std; void countdown (int n) { // n>0 please! if (n == 0) { cout << "Blastoff!" << endl; } else { cout << n << endl; countdown (n-1); cout << "backing out " << n << endl; } } int fac (int n) { int result; assert (n >= 0); cout << "Computing fac(" << n << ")...\n"; if (n == 0) { result = 1; } else { int recurse = fac(n - 1); cout << "... n * recurse = " << n << " * " << recurse; cout << " = " << n*recurse << endl; result = n * recurse; } cout << "fac(" << n << ") = " << result << endl; return result; } /* int fac (int n) { if (n==0) { return 1; } else { return n * fac(n-1); } } */ double distance (double x1, double y1, double x2, double y2) { double dx = x1 - x2; double dy = y1 - y2; return sqrt (dx*dx + dy*dy); } int main () { cout << "4! = " << fac(4) << endl; return 0; }