您好,登錄后才能下訂單哦!
這篇文章主要介紹了利用Java怎么對羅馬數字與阿拉伯數字進行轉換,此處通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考價值,需要的朋友可以參考下:
Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。
羅馬數字的表示主要依賴以下幾個基本符號:
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
這里,我們只介紹一下1000以內的數字的表示法。
單個符號重復多少次,就表示多少倍。最多重復3次。比如:CCC表示300 XX表示20,但150并不用LLL表示,這個規則僅適用于I X C M。
如果相鄰級別的大單位在右,小單位在左,表示大單位中扣除小單位。比如:IX表示9 IV表示4 XL表示40 更多的示例參見下表,你找到規律了嗎?
I,1
II,2
III,3
IV,4
V,5
VI,6
VII,7
VIII,8
IX,9
X,10
XI,11
XII,12
XIII,13
XIV,14
XV,15
XVI,16
XVII,17
XVIII,18
XIX,19
XX,20
XXI,21
XXII,22
XXIX,29
XXX,30
XXXIV,34
XXXV,35
XXXIX,39
XL,40
L,50
LI,51
LV,55
LX,60
LXV,65
LXXX,80
XC,90
XCIII,93
XCV,95
XCVIII,98
XCIX,99
C,100
CC,200
CCC,300
CD,400
D,500
DC,600
DCC,700
DCCC,800
CM,900
CMXCIX,999
本題目的要求是:請編寫程序,由用戶輸入若干個羅馬數字串,程序輸出對應的十進制表示。
輸入格式是:第一行是整數n,表示接下來有n個羅馬數字(n<100)。以后每行一個羅馬數字。羅馬數字大小不超過999。
要求程序輸出n行,就是羅馬數字對應的十進制數據。
例如,用戶輸入:
3
LXXX
XCIII
DCCII
則程序應該輸出:
80
93
702
import java.util.Scanner; /** * 請編寫程序,由用戶輸入若干個羅馬數字串,程序輸出對應的十進制表示。 * * 輸入格式是:第一行是整數n,表示接下來有n個羅馬數字(n<100)。以后每行一個羅馬數字。羅馬數字大小不超過999。 * * 要求程序輸出n行,就是羅馬數字對應的十進制數據。 * * 例如,用戶輸入: 3 LXXX XCIII DCCII * * 則程序應該輸出: 80 93 702 * * @author Administrator * */ public class RomeToArabic { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("億速云測試結果:"); Scanner mScanner = new Scanner(System.in); System.out.println(r2a(mScanner.nextLine())); System.out.println(a2r(mScanner.nextInt())); } /** * 把羅馬數字轉換為阿拉伯數字 * * @param m * @return */ public static int r2a(String m) { int graph[] = new int[400]; graph['I'] = 1; graph['V'] = 5; graph['X'] = 10; graph['L'] = 50; graph['C'] = 100; graph['D'] = 500; graph['M'] = 1000; char[] num = m.toCharArray(); int sum = graph[num[0]]; for (int i = 0; i < num.length - 1; i++) { if (graph[num[i]] >= graph[num[i + 1]]) { sum += graph[num[i + 1]]; } else { sum = sum + graph[num[i + 1]] - 2 * graph[num[i]]; } } return sum; } /** * 把阿拉伯數字轉換為羅馬數字 * * @param number * @return */ public static String a2r(int number) { String rNumber = ""; int[] aArray = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 }; String[] rArray = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" }; if (number < 1 || number > 3999) { rNumber = "-1"; } else { for (int i = 0; i < aArray.length; i++) { while (number >= aArray[i]) { rNumber += rArray[i]; number -= aArray[i]; } } } return rNumber; } }
運行結果:
到此這篇關于利用Java怎么對羅馬數字與阿拉伯數字進行轉換的文章就介紹到這了,更多相關利用Java怎么對羅馬數字與阿拉伯數字進行轉換的內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。