// External Function (prototype) printf(fmt, args); atoi(str); fact1(n) { var r; if (n == 0) r = 1; else r = n * fact1(n - 1); return r; } fact2(n) { var r; r = 1; while (n > 0) { r = r * n; n = n - 1; } return r; } fact3(n) { var i,r; i = r = 1; while (i <= n) { r = r * i; i = i + 1; } return r; } // Main routine main(argc, argv) { var n; if (argc < 2) { printf("usage: facts n\n"); return 1; } n = atoi(argv[1]); printf("fact1: %d\n", fact1(n)); printf("fact2: %d\n", fact2(n)); printf("fact3: %d\n", fact3(n)); return 0; }