def naive_fibonacci(n):
    """
    Return the n-th number in the fibonacci sequence. Uses recursion.
    The basic math expression is Xn = (Xn-1) + (Xn-2)
    The complexity is O(2^n). There are too many overlapping subproblems.
    """
    n = int(n)
    if n == 0 or n == 1: # base case
        return n
    return naive_fibonacci(n-1) + naive_fibonacci(n-2)