Added Tail Recursion

The stack will not overflow if the function is written tail-recursively