Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Roman Numerals by imloafer
def checkio(data):
#replace this for solution
arabic = (1000, 2000, 3000, 100, 200, 300, 400, 500, 600, 700,800,900,
10,20,30,40,50,60,70,80,90,1,2,3,4,5,6,7,8,9,0)
roman = ('M', 'MM', 'MMM','C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM',
'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', 'I', 'II',
'III', 'IV', 'V', 'VI','VII', 'VIII', 'IX','')
ROMAN = {k:v for k, v in zip(arabic, roman)}
to_roman = ''
while data >= 10:
e = len(str(data)) - 1
q, data = divmod(data, 10 ** e)
to_roman += ROMAN[q * 10 ** e]
return to_roman + ROMAN[data]
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert checkio(10) == 'X', '6'
assert checkio(76) == 'LXXVI', '76'
assert checkio(499) == 'CDXCIX', '499'
assert checkio(3888) == 'MMMDCCCLXXXVIII', '3888'
print('Done! Go Check!')
Oct. 18, 2022
Comments: