Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Creative category for Roman Numerals by radek120299
pierwsza10= {"1": 'I', '2': 'II', '3': 'III', '4': 'IV', '5': 'V',
'6': 'VI', '7': 'VII', '8': 'VIII', '9': 'IX'}
druga10= {'1': 'X', '2': 'XX',
'3': 'XXX', '4': 'XL', '5': 'L', '6': 'LX', '7': 'LXX', '8': 'LXXX',
'9': 'XC'}
trzecia10={'1': 'C', '2': 'CC', '3': 'CCC', '4': 'CD', '5': 'D',
'6': 'DC', '7': 'DCC', '8': 'DCCC', '9': 'CM'}
czwarta10={'1': 'M', '2': 'MM', '3': 'MMM'}
def checkio(data):
odp=""
data=str(data)
if len(data)==4 and data[1]=="0" and data[2]=="0" and data[3]=="0": # dla 3000 2000 itd.
odp =odp+czwarta10[data[0]]
if len(data)==4 and data[1]!="0" and data[2] == "0" and data[3]=="0": #dla 3100 2200 1600 itd.
odp =odp+czwarta10[data[0]]+trzecia10[data[1]]
if len(data)==4 and data[1]!='0' and data[2]!='0' and data[3]=='0': #dla 2110 1570 itd.
odp =odp+czwarta10[data[0]]+trzecia10[data[1]]+druga10[data[2]]
if len(data)==4 and data[1]!='0' and data[2]!='0' and data[3]!='0': #dla 1129 2521 itd.
odp =odp+czwarta10[data[0]]+trzecia10[data[1]]+druga10[data[2]]+pierwsza10[data[3]]
if len(data)==4 and data[1]=='0' and data[2]!='0' and data[3]!='0': #dla 4022
odp =odp+czwarta10[data[0]]+druga10[data[2]]+pierwsza10[data[3]]
if len(data)==4 and data[1]=='0' and data[2]=='0' and data[3]!='0': #dla 4001
odp =odp+czwarta10[data[0]]+pierwsza10[data[3]]
if len(data)==4 and data[1]!='0' and data[2]=='0' and data[3]!='0': #dla 4301
odp =odp+czwarta10[data[0]]+trzecia10[data[1]]+pierwsza10[data[3]]
if len(data)==3 and data[1]=='0' and data[2]=='0': #dla 200 300 100
odp =odp+trzecia10[data[0]]
if len(data)==3 and data[1]!='0' and data[2]=='0': #dla 310 320 560
odp=odp+trzecia10[data[0]]+ druga10[data[1]]
if len(data)==3 and data[1]!='0' and data[2]!='0': #dla 345 851 itd
odp = odp +trzecia10[data[0]]+ druga10[data[1]]+pierwsza10[data[2]]
if len(data)==3 and data[1]=='0' and data[2]!='0': #dla 204 itp
odp = odp +trzecia10[data[0]]+pierwsza10[data[2]]
if len(data)==2 and data[1]=="0": #dla 20 10 40
odp=odp+druga10[data[0]]
if len(data)==2 and data[1]!="0": #dla 21 65 84 12
odp=odp+druga10[data[0]]+pierwsza10[data[1]]
if len(data)==1:
odp=odp+pierwsza10[data]
return odp
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert checkio(2) == 'II', '2'
assert checkio(76) == 'LXXVI', '76'
assert checkio(499) == 'CDXCIX', '499'
assert checkio(3888) == 'MMMDCCCLXXXVIII', '3888'
print('Done! Go Check!')
Nov. 12, 2018