Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Roman Numerals by pawel.sydorow
def checkio(data):
directory1 = {1 : 'I',
2 : 'II',
3 : 'III',
4 : 'IV',
5 : 'V',
6 : 'VI',
7 : 'VII',
8 : 'VIII',
9 : 'IX',
0 : ''}
directory10 = {1 : 'X',
2 : 'XX',
3 : 'XXX',
4 : 'XL',
5 : 'L',
6 : 'LX',
7 : 'LXX',
8 : 'LXXX',
9 : 'XC',
0 : ''}
directory100 = {1 : 'C',
2 : 'CC',
3 : 'CCC',
4 : 'CD',
5 : 'D',
6 : 'DC',
7 : 'DCC',
8 : 'DCCC',
9 : 'CM',
0 : ''}
directory1000 = {1 : 'M',
2 : 'MM',
3 : 'MMM',
4 : 'MMMM',
0 : ''}
lista = list(str(data))
lista.reverse()
lengt = len(lista)
result = ""
while (lengt > 0):
if(lengt == 4):
result += directory1000[int(lista[lengt -1])]
if(lengt == 3):
result += directory100[int(lista[lengt - 1])]
if(lengt == 2):
result += directory10[int(lista[lengt - 1])]
if(lengt == 1):
result += directory1[int(lista[lengt - 1])]
lengt -= 1
print(result)
return result
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert checkio(10) == 'VI', '6'
assert checkio(76) == 'LXXVI', '76'
assert checkio(499) == 'CDXCIX', '499'
assert checkio(3888) == 'MMMDCCCLXXXVIII', '3888'
Nov. 6, 2016