羅馬數(shù)與整數(shù)的相互轉(zhuǎn)換

相互轉(zhuǎn)換的過(guò)程很簡(jiǎn)單,但是首先第一步就是要搞清楚羅馬數(shù)字的規(guī)律,還是ting有意思的~~~

羅馬數(shù)字總共有七種字符,對(duì)應(yīng)的數(shù)字如下:

? ? ? ? ? ? ? ? ? I? ? ? ? ? ? ? ?1

? ? ? ? ? ? ? ? ? V? ? ? ? ? ? ? 5

? ? ? ? ? ? ? ? ? X? ? ? ? ? ? ?10

? ? ? ? ? ? ? ? ? L? ? ? ? ? ? ? ?50

? ? ? ? ? ? ? ? ? C? ? ? ? ? ? ? 100

? ? ? ? ? ? ? ? ? D? ? ? ? ? ? ? ?500

? ? ? ? ? ? ? ? ? M? ? ? ? ? ? ? 1000

如:I,II,III,IV,V,VI,VII,VIII,IX,X分別對(duì)應(yīng)1,2,3,4,5,6,7,8,9,10??梢园l(fā)現(xiàn)小于4的,就是I一直疊加,4(IV)是右邊的數(shù)減去左邊的數(shù),大于V小于X就是右邊的數(shù)加上左邊的數(shù),以此類推。。。

下面分別是羅馬數(shù)轉(zhuǎn)整數(shù)和整數(shù)轉(zhuǎn)羅馬數(shù):

import java.util.HashMap;

import java.util.Scanner;

public class RomanAndInt {

//羅馬數(shù)轉(zhuǎn)整數(shù)

public int RomanToInt(){

Scanner sc =new Scanner(System.in);

String Lnumber=sc.next();

if(Lnumber==null|| Lnumber.length()==0){

return -1;

}

HashMap map=new HashMap();

map.put('I',1);

map.put('V',5);

map.put('X',10);

map.put('L',50);

map.put('C',100);

map.put('D',500);

map.put('M',1000);

int result=map.get(Lnumber.charAt(Lnumber.length()-1));

for(int i=Lnumber.length()-2;i>=0;i--){

if(map.get(Lnumber.charAt(i))>=map.get(Lnumber.charAt(i+1))){

result+=map.get(Lnumber.charAt(i));

}else{

result-=map.get(Lnumber.charAt(i));

}

}

return result;

}

//整數(shù)轉(zhuǎn)羅馬數(shù)

public String IntToRoman(){

Scanner sc=new Scanner(System.in);

int number=sc.nextInt();

StringBuilder sb=new StringBuilder();

String[][] roman={

{"","I","II","III","IV","V","VI","VII","VIII","IX"},

{"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"},

{"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"},

{"","M","MM","MMM"}

};

sb.append(roman[3][number/1000%10]);

sb.append(roman[2][number/100%10]);

sb.append(roman[1][number/10%10]);

sb.append(roman[0][number%10]);

String?result=""+sb;

return result;

}

public static void main(String[] args){

RomanAndInt re=new RomanAndInt();

re.RomanToInt();

re.IntToRoman();

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容