真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

利用Java怎么對羅馬數(shù)字與阿拉伯?dāng)?shù)字進(jìn)行轉(zhuǎn)換

這篇文章主要介紹了利用Java怎么對羅馬數(shù)字與阿拉伯?dāng)?shù)字進(jìn)行轉(zhuǎn)換,此處通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考價值,需要的朋友可以參考下:

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供臺江網(wǎng)站建設(shè)、臺江做網(wǎng)站、臺江網(wǎng)站設(shè)計、臺江網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、臺江企業(yè)網(wǎng)站模板建站服務(wù),10多年臺江做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

Java可以用來干什么

Java主要應(yīng)用于:1. web開發(fā);2. Android開發(fā);3. 客戶端開發(fā);4. 網(wǎng)頁開發(fā);5. 企業(yè)級應(yīng)用開發(fā);6. Java大數(shù)據(jù)開發(fā);7.游戲開發(fā)等。

羅馬數(shù)字的表示主要依賴以下幾個基本符號:

    I  1
    V  5
    X  10
    L  50
    C  100
    D  500
    M  1000

這里,我們只介紹一下1000以內(nèi)的數(shù)字的表示法。

單個符號重復(fù)多少次,就表示多少倍。最多重復(fù)3次。比如:CCC表示300  XX表示20,但150并不用LLL表示,這個規(guī)則僅適用于I X C M。

如果相鄰級別的大單位在右,小單位在左,表示大單位中扣除小單位。比如:IX表示9  IV表示4  XL表示40 更多的示例參見下表,你找到規(guī)律了嗎?

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

本題目的要求是:請編寫程序,由用戶輸入若干個羅馬數(shù)字串,程序輸出對應(yīng)的十進(jìn)制表示。

輸入格式是:第一行是整數(shù)n,表示接下來有n個羅馬數(shù)字(n<100)。以后每行一個羅馬數(shù)字。羅馬數(shù)字大小不超過999。

要求程序輸出n行,就是羅馬數(shù)字對應(yīng)的十進(jìn)制數(shù)據(jù)。

例如,用戶輸入:

3
LXXX
XCIII
DCCII

則程序應(yīng)該輸出:

80
93
702

import java.util.Scanner;
/**
 * 請編寫程序,由用戶輸入若干個羅馬數(shù)字串,程序輸出對應(yīng)的十進(jìn)制表示。
 *
 * 輸入格式是:第一行是整數(shù)n,表示接下來有n個羅馬數(shù)字(n<100)。以后每行一個羅馬數(shù)字。羅馬數(shù)字大小不超過999。
 *
 * 要求程序輸出n行,就是羅馬數(shù)字對應(yīng)的十進(jìn)制數(shù)據(jù)。
 *
 * 例如,用戶輸入: 3 LXXX XCIII DCCII
 *
 * 則程序應(yīng)該輸出: 80 93 702
 *
 * @author Administrator
 *
 */
public class RomeToArabic {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println("創(chuàng)新互聯(lián)測試結(jié)果:");
    Scanner mScanner = new Scanner(System.in);
    System.out.println(r2a(mScanner.nextLine()));
    System.out.println(a2r(mScanner.nextInt()));
  }
  /**
   * 把羅馬數(shù)字轉(zhuǎn)換為阿拉伯?dāng)?shù)字
   *
   * @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;
  }
  /**
   * 把阿拉伯?dāng)?shù)字轉(zhuǎn)換為羅馬數(shù)字
   *
   * @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;
  }
}

運行結(jié)果:

利用Java怎么對羅馬數(shù)字與阿拉伯?dāng)?shù)字進(jìn)行轉(zhuǎn)換

到此這篇關(guān)于利用Java怎么對羅馬數(shù)字與阿拉伯?dāng)?shù)字進(jìn)行轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)利用Java怎么對羅馬數(shù)字與阿拉伯?dāng)?shù)字進(jìn)行轉(zhuǎn)換的內(nèi)容請搜索創(chuàng)新互聯(lián)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持創(chuàng)新互聯(lián)!


當(dāng)前標(biāo)題:利用Java怎么對羅馬數(shù)字與阿拉伯?dāng)?shù)字進(jìn)行轉(zhuǎn)換
本文來源:http://weahome.cn/article/pjhdjo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部