Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
divmod() solution in Clear category for Roman Numerals by Kairat
def checkio(data):
weights = (
(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'),
)
result = []
for weight, digit in weights:
count, data = divmod(data, weight)
if count:
result.append(count*digit)
return "".join(result)
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. 18, 2019