Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Roman Numerals by klaganowski
pondziesiec=['','I','II','III','IV','V','VI','VII','VIII','IX']
ponsto=['','X','XX','XXX','XL','L','LX','LXX','LXXX','XC']
pontys=['','C','CC','CCC','CD','D','DC','DCC','DCCC','CM']
pon=['','M','MM','MMM']
def checkio(data):
r=''
if 1<=data<10:
r+=pondziesiec[data]
return r
elif data<100:
r=ponsto[int(data/10)]
if data%10:
r+=checkio(data%10)
return r
elif data<1000:
r=pontys[int(data/100)]
if data%100:
r+=checkio(data%100)
return r
elif data<4000:
r=pon[int(data/1000)]
if data%1000:
r+=checkio(data%1000)
return r
else:
return 'invalid'
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert checkio(6) == 'VI', '6'
assert checkio(76) == 'LXXVI', '76'
assert checkio(499) == 'CDXCIX', '499'
assert checkio(3888) == 'MMMDCCCLXXXVIII', '3888'
Dec. 4, 2016