二、羅馬數(shù)字記數(shù)方法
基本字符:
I、V、X、L、C、D、M
相應(yīng)的阿拉伯?dāng)?shù)字表示為:
1、5、10、50、100、500、1000
(1)相同的數(shù)字連寫,所表示的數(shù)等于這些數(shù)字相加得到的數(shù),如:Ⅲ = 3;
(2)小的數(shù)字在大的數(shù)字的右邊,所表示的數(shù)等于這些數(shù)字相加得到的數(shù), 如:Ⅷ = 8;Ⅻ = 12;
(3)小的數(shù)字,(限于Ⅰ、X 和C)在大的數(shù)字的左邊,所表示的數(shù)等于大數(shù)減小數(shù)得到的數(shù),如:Ⅳ= 4;Ⅸ= 9;
(4)正常使用時(shí),連寫的數(shù)字重復(fù)不得超過(guò)三次。(表盤上的四點(diǎn)鐘“IIII”例外)
(5)在一個(gè)數(shù)的上面畫一條橫線,表示這個(gè)數(shù)擴(kuò)大1000倍。
三、組數(shù)規(guī)則
(1)基本數(shù)字Ⅰ、X 、C 中的任何一個(gè),自身連用構(gòu)成數(shù)目,或者放在大數(shù)的右邊連用構(gòu)成數(shù)目,都不能超過(guò)三個(gè);放在大數(shù)的左邊只能用一個(gè)。
(2)不能把基本數(shù)字V 、L 、D 中的任何一個(gè)作為小數(shù)放在大數(shù)的左邊采用相減的方法構(gòu)成數(shù)目;放在大數(shù)的右邊采用相加的方式構(gòu)成數(shù)目,只能使用一個(gè)。
(3)V 和X 左邊的小數(shù)字只能用Ⅰ。
(4)L 和C 左邊的小數(shù)字只能用X。
(5)D 和M 左邊的小數(shù)字只能用C。
function lm_al(arabic){
var alpha = [ 'I', 'V', 'X', 'L', 'C', 'D', 'M' ], roman = "", bit = 0;
while (arabic > 0){
var tempnum = arabic % 10;
switch (tempnum){
case 3:{
roman = alpha[bit] + roman;
tempnum--;
}
case 2:{
roman = alpha[bit] + roman;
tempnum--;
}
case 1:{
roman = alpha[bit] + roman;
break;
}
case 4:{
roman = alpha[bit + 1] + roman;
roman = alpha[bit] + roman;
break;
}
case 8:{
roman = alpha[bit] + roman;
tempnum--;
}
case 7:{
roman = alpha[bit] + roman;
tempnum--;
}
case 6:{
roman = alpha[bit] + roman;
tempnum--;
}
case 5:{
roman = alpha[bit + 1] + roman;
break;
}
case 9:{
roman = alpha[bit + 2] + roman;
roman = alpha[bit] + roman;
break;
}
default:{
break;
}
}
bit += 2;
arabic = Math.floor(arabic / 10);
}
return roman;
}