Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Roman Numerals by kunkka71
from collections import OrderedDict
sym = OrderedDict()
sym['M'] = 1000
sym['CM'] = 900
sym['D'] = 500
sym['CD'] = 400
sym['C'] = 100
sym['XC'] = 90
sym['L'] = 50
sym['XL'] = 40
sym['X'] = 10
sym['IX'] = 9
sym['V'] = 5
sym['IV'] = 4
sym['I'] = 1
def checkio(num):
roman = ''
for i,j in sym.items():
while num >= j:
roman,num = roman + i, num - j
return roman
#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'
Jan. 22, 2014
Comments: