public int getTailRecursive(int n) {
    validateInput(n);
    return getTailRecursiveInner(n, 1);
  }
Tail recursive implementation of the previous algorithm. The complexity order in time and
space terms is the same but the resources needed by the CPU to execute this method is lower
because this implementation is tail recursive.
src/main/java/com/github/pedrovgs/problem9/Factorial.java