Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Speedy category for Roman Numerals by pierre.wacrenier
conv = (
(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'),
)
def checkio(data):
endstr = ""
for assoc in conv:
result = data // assoc[0]
if result > 0:
endstr += result * assoc[1]
data %= assoc[0]
return endstr
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'
June 17, 2017