Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Recursion solution in Clear category for Roman Numerals by Olpag
def checkio(data):
if data < 0 or data > 3999:
return ''
ar2rim = {0: '', 1: 'I', 4: 'IV', 5: 'V', 9: 'IX', 10: 'X', 40: 'XL', 50: 'L', 90: 'XC', 100: 'C', 400: 'CD', 500: 'D', 900: 'CM', 1000: 'M'}
def sumrim(data):
key, val = ar2rim.popitem()
if key == 0:
return val
else:
return (data // key) * val + sumrim(data % key)
return sumrim(data)
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert checkio(6) == 'VI', '6'
assert checkio(76) == 'LXXVI', '76'
assert checkio(499) == 'CDXCIX', '499'
assert checkio(3888) == 'MMMDCCCLXXXVIII', '3888'
print('Done! Go Check!')
Jan. 28, 2019