// Computes N! for an integer N >= 0 int F = 1; // Invariant: F == (J-1)! for (int J = 1; J <= N; ++J) F *= J; // Computes an approximation to eX for a real X double T = 1.0; double S = 1.0; int K = 1; // Invariant: T == XK-1/(K-1)! and // S == 1+X+X2/2!+...+XK-1/(K-1)! while (K <= N) { T *= X/K; S += T; ++K; } // end while