// 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);
    }
}