ROMAN

アラビア数字をローマ数字に変換します。

構文
  1. UString = ROMAN( num )
引数
num
アラビア数字
戻値
ローマ数字に変換したアラビア数字

プログラム

//////////////////////////////////////////////////
// 【引数】
//   num : アラビア数字 
// 【戻値】
//   ローマ数字に変換したアラビア数字 
//////////////////////////////////////////////////
FUNCTION ROMAN(num)
	DIM arr[][1] = 1, "I", + _
					2, "II", + _
					3, "III", + _
					4, "IV", + _
					5, "V", + _
					6, "VI", + _
					7, "VII", + _
					8, "VIII", + _
					9, "IX", + _
					10, "X", + _
					40, "XL", + _
					50, "L", + _
					90, "XC", + _
					100, "C", + _
					400, "CD", + _
					500, "D", + _
					900, "CM", + _
					1000, "M"
	DIM res = ""
	
	n = UBound(arr)
	REPEAT
		SELECT TRUE
			CASE num / arr[n][0] >= 1
				res = res + arr[n][1]
				num = num - arr[n][0]
			DEFAULT
				n = n - 1
		SELEND
	UNTIL num = 0
	
	RESULT = res
FEND

//////////////////////////////////////////////////
// 【引数】
//   配列 : 上限値を求める配列 
// 【戻値】
//   配列の上限値 
//////////////////////////////////////////////////
FUNCTION UBound(array[])
	RESULT = RESIZE(array)
FEND

アラビア数字・ローマ数字対応表

アラビア数字 ローマ数字
1 I
2 II
3 III
4 IV
5 V
6 VI
7 VII
8 VIII
9 IX
10 X
40 XL
50 L
90 XC
100 C
400 CD
500 D
900 CM
1000 M