Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Roman Numerals by Michal_Adamski98
def checkio(data):
M=1000
CM=900
DCCC=800
DCC=700
DC=600
D=500
CD=400
CCC=300
CC=200
C=100
XC=90
LXXX=80
LXX=70
LX=60
L=50
XL=40
XXX=30
XX=20
X=10
IX=9
V=5
IV=4
I=1
tab=[]
pom=str(data)
d=len(pom)
potega=10**(d-1)
x=0
for i in range(d):
tab.append(int(pom[i])*potega)
potega=potega/10
wynik=""
for i in range(d):
if(tab[i]>=1000):
pom=tab[i]/1000
wynik=wynik+"M"
wynik=int(pom)*wynik
if(tab[i]==900):
wynik=wynik+"CM"
if (tab[i] == 800):
wynik = wynik + "DCCC"
if (tab[i] == 700):
wynik = wynik + "DCC"
if (tab[i] == 600):
wynik = wynik + "DC"
if (tab[i] == 500):
wynik = wynik + "D"
if (tab[i] == 400):
wynik = wynik + "CD"
if (tab[i] == 300):
wynik = wynik + "CCC"
if (tab[i] == 200):
wynik = wynik + "CC"
if (tab[i] == 100):
wynik = wynik + "C"
if (tab[i] == 90):
wynik = wynik + "XC"
if (tab[i] == 80):
wynik = wynik + "LXXX"
if (tab[i] == 70):
wynik = wynik + "LXX"
if (tab[i] == 60):
wynik = wynik + "LX"
if (tab[i] == 50):
wynik = wynik + "L"
if (tab[i] == 40):
wynik = wynik + "XL"
if (tab[i] == 30):
wynik = wynik + "XXX"
if (tab[i] == 20):
wynik = wynik + "XX"
if (tab[i] == 10):
wynik = wynik + "X"
if (tab[i] == 9):
wynik = wynik + "IX"
if (tab[i] == 8):
wynik = wynik + "VIII"
if (tab[i] == 7):
wynik = wynik + "VII"
if (tab[i] == 6):
wynik = wynik + "VI"
if (tab[i] == 5):
wynik = wynik + "V"
if (tab[i] == 4):
wynik = wynik + "IV"
if (tab[i] == 3):
wynik = wynik + "III"
if (tab[i] == 2):
wynik = wynik + "II"
if (tab[i] == 1):
wynik = wynik + "I"
return wynik
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'
Oct. 23, 2017