#include <iostream>
using namespace std;

int factorial(int i);

int main() {
    cout << "5! = " << factorial(5) << endl;
}

int factorial(int i) {
    if (i < 0) {
        return 0;                    // domain error
    } else if (i == 0) {
        return 1;                    // base case
    } else {
        return i * factorial(i - 1); // recursive case
    }
}
