32 lines
1.0 KiB
Plaintext
32 lines
1.0 KiB
Plaintext
' FB 1.05.0 Win64
|
|
|
|
Function romanEncode(n As Integer) As String
|
|
If n < 1 OrElse n > 3999 Then Return "" '' can only encode numbers in range 1 to 3999
|
|
Dim roman1(0 To 2) As String = {"MMM", "MM", "M"}
|
|
Dim roman2(0 To 8) As String = {"CM", "DCCC", "DCC", "DC", "D", "CD", "CCC", "CC", "C"}
|
|
Dim roman3(0 To 8) As String = {"XC", "LXXX", "LXX", "LX", "L", "XL", "XXX", "XX", "X"}
|
|
Dim roman4(0 To 8) As String = {"IX", "VIII", "VII", "VI", "V", "IV", "III", "II", "I"}
|
|
Dim As Integer thousands, hundreds, tens, units
|
|
thousands = n \ 1000
|
|
n Mod= 1000
|
|
hundreds = n \ 100
|
|
n Mod= 100
|
|
tens = n \ 10
|
|
units = n Mod 10
|
|
Dim roman As String = ""
|
|
If thousands > 0 Then roman += roman1(3 - thousands)
|
|
If hundreds > 0 Then roman += roman2(9 - hundreds)
|
|
If tens > 0 Then roman += roman3(9 - tens)
|
|
If units > 0 Then roman += roman4(9 - units)
|
|
Return roman
|
|
End Function
|
|
|
|
Dim a(2) As Integer = {1990, 2008, 1666}
|
|
For i As Integer = 0 To 2
|
|
Print a(i); " => "; romanEncode(a(i))
|
|
Next
|
|
|
|
Print
|
|
Print "Press any key to quit"
|
|
Sleep
|