中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Java怎么對羅馬數字與阿拉伯數字進行轉換

發布時間:2021-02-23 15:03:47 來源:億速云 閱讀:311 作者:戴恩恩 欄目:編程語言

這篇文章主要介紹了利用Java怎么對羅馬數字與阿拉伯數字進行轉換,此處通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考價值,需要的朋友可以參考下:

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怎么對羅馬數字與阿拉伯數字進行轉換的文章就介紹到這了,更多相關利用Java怎么對羅馬數字與阿拉伯數字進行轉換的內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大宁县| 内乡县| 枞阳县| 内江市| 大连市| 玉环县| 长泰县| 乌兰察布市| 柞水县| 府谷县| 和平县| 石狮市| 河北区| 泗水县| 新闻| 新密市| 扶风县| 辽阳市| 湖口县| 乡城县| 鹿泉市| 古交市| 巴彦淖尔市| 新丰县| 渝北区| 汕尾市| 固原市| 北京市| 山西省| 左权县| 买车| 敦煌市| 冕宁县| 大埔县| 杨浦区| 公主岭市| 曲沃县| 文昌市| 信丰县| 嵊州市| 错那县|