Recursive Function is a function that could solve the given problem by repeatedly calling the function.
To have a functional Recursive Function, it must meet the following conditions:
- Has base cases
- It could make progress toward a base case
- Assume that all the recursive calls work
- It is not called more than once in the same instance