Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Using OrderedDict and // solution in Clear category for Roman Numerals by H0r4c3
from collections import OrderedDict
def checkio(data):
integers_dict = OrderedDict()
integers_dict = {1000: 'M', 900:'CM', 500:'D', 400:'CD',
100:'C', 90:'XC', 50:'L', 40:'XL',
10:'X', 9:'IX', 5:'V', 4:'IV',
1:'I'}
roman_num = ''
i = 0
while data > 0:
key_i = list(integers_dict.keys())[i] # the key in position i
for _ in range(data // key_i):
roman_num += integers_dict[key_i]
data -= key_i
i += 1
return roman_num
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!')
Dec. 21, 2021
Comments: