Roman numerals/Encode: Difference between revisions
Content deleted Content added
Line 5,963: | Line 5,963: | ||
===Minimalistic structuralism=== |
===Minimalistic structuralism=== |
||
<syntaxhighlight lang="python">def toRoman(n): |
<syntaxhighlight lang="python">def toRoman(n): |
||
res='' |
res='' #converts int to str(Roman numeral) |
||
reg=n #using the numerals (M,D,C,L,X,V,I) |
|||
reg=n |
|||
if reg<4000: |
if reg<4000:#no more than three repetitions |
||
while reg>=1000: |
while reg>=1000: #thousands |
||
res+='M' |
res+='M' |
||
reg-=1000 |
reg-=1000 |
||
if reg>=900: |
if reg>=900: #nine hundreds in 900-999 |
||
res+='CM' |
res+='CM' |
||
reg-=900 |
reg-=900 |
||
if reg>=500: |
if reg>=500: #five hudreds in 500-899 |
||
res+='D' |
res+='D' |
||
reg-=500 |
reg-=500 |
||
if reg>=400: |
if reg>=400: #four hundreds in 400-499 |
||
res+='CD' |
res+='CD' |
||
reg-=400 |
reg-=400 |
||
while reg>=100: |
while reg>=100: #hundreds in 100-399 |
||
res+='C' |
res+='C' |
||
reg-=100 |
reg-=100 |
||
if reg>=90: |
if reg>=90: #nine tens in 90-99 |
||
res+='XC' |
res+='XC' |
||
reg-=90 |
reg-=90 |
||
if reg>=50: |
if reg>=50: #five Tens in 50-89 |
||
res+='L' |
res+='L' |
||
reg-=50 |
reg-=50 |
||
if reg>=40: |
if reg>=40: |
||
res+='XL' |
res+='XL' #four Tens |
||
reg-=40 |
reg-=40 |
||
while reg>=10: |
while reg>=10: |
||
res+="X" |
res+="X" #tens |
||
reg-=10 |
reg-=10 |
||
if reg>=9: |
if reg>=9: |
||
res+='IX' |
res+='IX' #nine Units |
||
reg-=9 |
reg-=9 |
||
if reg>=5: |
if reg>=5: |
||
res+='V' |
res+='V' #five Units |
||
reg-=5 |
reg-=5 |
||
if reg>=4: |
if reg>=4: |
||
res+='IV' |
res+='IV' #four Units |
||
reg-=4 |
reg-=4 |
||
while reg>0: |
while reg>0: #three or less Units |
||
res+='I' |
res+='I' |
||
reg-=1 |
reg-=1 |