// Given n of 1 or more, return the factorial of n, which is n * (n-1) * (n-2) ... 1. Compute the result // recursively (without loops).
// factorial(1) → 1
// factorial(2) → 2
// factorial(3) → 6
#include <stdio.h>
// To enable debug messages uncomment #define
#define TEST 1
int factorial (int n);
void startTesting();
int main(void) {
#ifdef TEST
startTesting();
#endif
return 0;
}
int factorial(int n)
{
if (n == 0) {
return 0;
}
if (n == 1) {
return 1;
}
return n * factorial (n -1);
}
void startTesting()
{
int result = 0;
int i = 0;
for (i = 0; i <= 5; i++) {
result = factorial(i);
printf("Factorial(%d) = %d\n", i
, result
); }
}