Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Roman Numerals by Another_Chris
# migrated from python 2.7
def checkio(data):
value_map = {
1: "I",
4: "IV",
5: "V",
9: "IX",
10: "X",
40: "XL",
50: "L",
90: "XC",
100: "C",
400: "CD",
500: "D",
900: "CM",
1000: "M"
}
def int_to_roman(num):
# Make a list of the values we'll use
# Listed from greatest to smallest
value = sorted([x for x in list(value_map.keys()) if x <= num], reverse=True)
if num > 0:
num -= value[0]
return value_map[value[0]] + int_to_roman(num)
else:
return ''
return int_to_roman(data)
if __name__ == '__main__':
assert checkio(6) == 'VI', '6'
assert checkio(76) == 'LXXVI', '76'
assert checkio(499) == 'CDXCIX', '499'
assert checkio(3888) == 'MMMDCCCLXXXVIII', '3888'
April 8, 2015
Comments: