RosettaCodeData/Task/Roman-numerals-Encode/BBC-BASIC/roman-numerals-encode-2.basic

23 lines
699 B
Plaintext

PRINT 1999;" ";FNint_ToRoman(1999)
PRINT 2012;" ";FNint_ToRoman(2012)
PRINT 1666;" ";FNint_ToRoman(1666)
PRINT 3888;" ";FNint_ToRoman(3888)
END
DEFFNint_ToRoman(A%)
IF A%<0:="MINIMUS"
IF A%=0:="NULLA"
IF A%>3999:="MAXIMUS"
A$=STRING$(A% DIV 1000,"M"):A%=A% MOD 1000
IF A%>899:A$=A$+"CM":A%=A%-900
IF A%>499:A$=A$+"D" :A%=A%-500
IF A%>399:A$=A$+"CD":A%=A%-400
A$=A$+STRING$(A% DIV 100,"C"):A%=A% MOD 100
IF A%>89:A$=A$+"XC":A%=A%-90
IF A%>49:A$=A$+"L" :A%=A%-50
IF A%>39:A$=A$+"XL":A%=A%-40
A$=A$+STRING$(A% DIV 10,"X"):A%=A% MOD 10
IF A%>8:A$=A$+"IX":A%=A%-9
IF A%>4:A$=A$+"V" :A%=A%-5
IF A%>3:A$=A$+"IV":A%=A%-4
=A$+STRING$(A%,"I")