def _dec_to_roman(num, s, decs, romans):
    """
    convert a Decimal number to Roman numeral recursively

    Args:
        num: The decimal number.
        s: The roman numerial string.
        decs: Current list of decimal denomination.
        romans: Current list of roman denomination.

    Returns:
        Roman numeral equivalent of num, as string.
    """
    if decs:
        if (num < decs[0]):
            # deal with the rest denomination
            return _dec_to_roman(num, s, decs[1:], romans[1:])
        else:
            # deduce this denomation till num<desc[0]
            return _dec_to_roman(num - decs[0], s + romans[0], decs, romans)
    else:
        # we run out of denomination, we are done
        return s