def summation(num: int) -> int:
    """ 
        Recursively calculates the sum of all the numbers between 1 and num.

        With this approach we get:
        - Time Complexity => O(n) [Basically doing a for loop recursively]
        - Space Complexity => O(n) [We have to store all the calls on the stack]
    """
    if num <= 1: return num
    return num + summation(num - 1)