Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Third solution in Clear category for Roman Numerals by jtokaz
def checkio(data):
d = dict(zip([1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000],
'I IV V IX X XL L XC C CD D CM M'.split()))
roman_str = ''
while data > 0:
x = max(y for y in d.keys() if y <= data)
roman_str += d[x]
data -= x
return roman_str
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio(6) == 'VI', '6'
assert checkio(76) == 'LXXVI', '76'
assert checkio(499) == 'CDXCIX', '499'
assert checkio(3888) == 'MMMDCCCLXXXVIII', '3888'
June 15, 2019
Comments: