48 lines
1.0 KiB
Plaintext
48 lines
1.0 KiB
Plaintext
arabicNumeral = 1990
|
|
ConvertToRoman()
|
|
TextWindow.WriteLine(romanNumeral) 'MCMXC
|
|
arabicNumeral = 2018
|
|
ConvertToRoman()
|
|
TextWindow.WriteLine(romanNumeral) 'MMXVIII
|
|
arabicNumeral = 3888
|
|
ConvertToRoman()
|
|
TextWindow.WriteLine(romanNumeral) 'MMMDCCCLXXXVIII
|
|
|
|
Sub ConvertToRoman
|
|
weights[0] = 1000
|
|
weights[1] = 900
|
|
weights[2] = 500
|
|
weights[3] = 400
|
|
weights[4] = 100
|
|
weights[5] = 90
|
|
weights[6] = 50
|
|
weights[7] = 40
|
|
weights[8] = 10
|
|
weights[9] = 9
|
|
weights[10] = 5
|
|
weights[11] = 4
|
|
weights[12] = 1
|
|
symbols[0] = "M"
|
|
symbols[1] = "CM"
|
|
symbols[2] = "D"
|
|
symbols[3] = "CD"
|
|
symbols[4] = "C"
|
|
symbols[5] = "XC"
|
|
symbols[6] = "L"
|
|
symbols[7] = "XL"
|
|
symbols[8] = "X"
|
|
symbols[9] = "IX"
|
|
symbols[10] = "V"
|
|
symbols[11] = "IV"
|
|
symbols[12] = "I"
|
|
romanNumeral = ""
|
|
i = 0
|
|
While (i <= 12) And (arabicNumeral > 0)
|
|
While arabicNumeral >= weights[i]
|
|
romanNumeral = Text.Append(romanNumeral, symbols[i])
|
|
arabicNumeral = arabicNumeral - weights[i]
|
|
EndWhile
|
|
i = i + 1
|
|
EndWhile
|
|
EndSub
|