10 REM Roman numerals/Encode 20 DIM WEIGHTS%(12), SYMBOLS$(12) 30 FOR J% = 0 TO 12: READ WEIGHTS%(J%), SYMBOLS$(J%): NEXT J% 40 DATA 1000, "M", 900, "CM", 500, "D", 400, "CD", 100, "C", 90, "XC" 50 DATA 50, "L", 40, "XL", 10, "X", 9, "IX", 5, "V", 4, "IV", 1, "I" 60 REM 3888 or MMMDCCCLXXXVIII (15 chars) is 70 REM the longest string properly encoded 80 REM with these symbols. 90 AVALUE% = 1990: GOSUB 1000: PRINT ROMAN$ ' MCMXC 100 AVALUE% = 2022: GOSUB 1000: PRINT ROMAN$ ' MMXXII 110 AVALUE% = 3888: GOSUB 1000: PRINT ROMAN$ ' MMMDCCCLXXXVIII 120 END 990 REM Encode to roman 1000 ROMAN$ = "": I% = 0 1010 WHILE (I% <= 12) AND (AVALUE% > 0) 1020 WHILE AVALUE% >= WEIGHTS%(I%) 1030 ROMAN$ = ROMAN$ + SYMBOLS$(I%) 1040 AVALUE% = AVALUE% - WEIGHTS%(I%) 1050 WEND 1060 I% = I% + 1 1070 WEND 1080 RETURN