
def 	SCREAMING_SNAKE_CASE__    (      __lowerCAmelCase							):
    if upper_limit < 0:
        raise ValueError("Limit for the Catalan sequence must be ≥ 0"							)

    snake_case__						=				[0] * (upper_limit + 1)

    # Base case: C(0) = C(1) = 1
    snake_case__						=				1
    if upper_limit > 0:
        snake_case__						=				1

    # Recurrence relation: C(i) = sum(C(j).C(i-j-1)), from j = 0 to i
    for i in range(2    ,		upper_limit + 1							):
        for j in range(__lowerCAmelCase							):
            catalan_list[i] += catalan_list[j] * catalan_list[i - j - 1]

    return catalan_list


if __name__ == "__main__":
     print('''\n********* Catalan Numbers Using Dynamic Programming ************\n''')
     print('''\n*** Enter -1 at any time to quit ***''')
     print('''\nEnter the upper limit (≥ 0) for the Catalan number sequence: ''', end='''''')
     try:
          while True:
               __magic_name__            =  int(input().strip())
               if N < 0:
                    print('''\n********* Goodbye!! ************''')
                    break
               else:
                    print(F'''The Catalan numbers from 0 through {N} are:''')
                    print(catalan_numbers(N))
                    print('''Try another upper limit for the sequence: ''', end='''''')
     except (NameError, ValueError):
          print('''\n********* Invalid input, goodbye! ************\n''')

     import doctest

     doctest.testmod()





from __future__ import annotations





def 	SCREAMING_SNAKE_CASE__    (      __lowerCAmelCase    ,		__lowerCAmelCase    ,		__lowerCAmelCase							):
    if (voltage, current, resistance).count(0							) != 1:
        raise ValueError("One and only one argument must be 0"							)
    if resistance < 0:
        raise ValueError("Resistance cannot be negative"							)
    if voltage == 0:
        return {"voltage": float(current * resistance							)}
    elif current == 0:
        return {"current": voltage / resistance}
    elif resistance == 0:
        return {"resistance": voltage / current}
    else:
        raise ValueError("Exactly one argument must be 0"							)


if __name__ == "__main__":
     import doctest

     doctest.testmod()



