function factorial(x, y) {
    // 받는 변수 : x, 계산된 변수 : y

    // 종료 로직, 해당 조건문이 되면 함수 실행 종료
    if (x == 0) {
        return console.log(y);
    }

    // 함수가 처음 실행될 때
    if (!y) {
        factorial(x - 1, x);
        // x = 4, y = 5;
        // 함수가 두번째부터 실행될 때
    } else {
        y = y * x;
        factorial(x - 1, y);
    }
}

factorial(5);

// 5!
/**
 * 1. 변수 i를 받아서 계산을 시작한다.
 * 2. 계산이 1회 끝나면 변수 i의 값을 1 감소 시켜서 재실행한다.
 * 3. 변수 i가 0보다 클 때까지 반복한다.
 * 4. 순서 예시
 * x = 5, y = 0
 * x = 4, y = 5
 * x = 3, y = 20
 * x = 2, y = 60
 * x = 1, y = 120
 * x = 0, y = 120
 */