Dieser Artikel beschreibt die Lösung der Java -Implementierung für die gegenseitige Umwandlung klassischer römischer Ziffern und arabischer Ziffern. Teilen Sie es für Ihre Referenz wie folgt weiter:
Das alte Römische Reich schuf eine brillante menschliche Zivilisation, aber ihre Anzahl war in der Tat etwas umständlich, insbesondere wenn sie große Zahlen darstellte, die jetzt unerträglich zu sein scheinen, und es wird also in der Neuzeit selten verwendet. Der Grund dafür liegt nicht an der Intelligenz der Person, die die Darstellung erfunden hat, sondern aufgrund einer Religion war das Konzept von 0 zu dieser Zeit in den Zahlen verboten!
Die Darstellung römischer Ziffern hängt hauptsächlich von den folgenden Grundsymbolen ab:
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
Hier werden wir nur die Darstellung von Zahlen innerhalb von 1000 vorstellen.
Die Häufigkeit, mit der ein einzelnes Symbol wiederholt wird, gibt die Häufigkeit an. Wiederholen Sie bis zu dreimal. Zum Beispiel: CCC bedeutet 300, xx bedeutet 20, aber 150 wird nicht durch LLL dargestellt, diese Regel gilt nur für IXCM.
Wenn sich die große Einheit der benachbarten Ebene rechts befindet und die kleine Einheit links ist, bedeutet dies, dass die kleine Einheit von der großen Einheit abgezogen wird. Zum Beispiel: IX bedeutet 9, iv bedeutet 4, xl 40. Weitere Beispiele finden Sie in der folgenden Tabelle. Haben Sie die Regeln gefunden?
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
Die Anforderungen dieser Frage sind: Bitte schreiben Sie ein Programm, der Benutzer tritt mehrere Zeichenfolgen römischer Ziffern ein und das Programm gibt die entsprechende Dezimalrepräsentation aus.
Das Eingangsformat lautet: Die erste Zeile ist die Ganzzahl n, was darauf hinweist, dass es n römische Ziffern gibt (n <100). Für jede Linie wird es später eine römische Zahl geben. Die Größe der römischen Ziffern darf 999 nicht überschreiten.
Das Programm ist erforderlich, um N -Zeilen auszugeben, bei denen es sich um die Dezimaldaten handelt, die römischen Ziffern entsprechen.
Zum Beispiel Benutzereingabe:
3
Lxxx
Xciii
DCCII
Dann sollte das Programm ausgeben:
80
93
702
Importieren Sie Java.util.scanner;/*** Bitte schreiben Sie ein Programm, der Benutzer tritt mehrere römische Ziffern ein, und das Programm gibt die entsprechende Dezimalpräparation aus. * * Das Eingangsformat lautet: Die erste Zeile ist die Ganzzahl n, was darauf hinweist, dass es n römische Ziffern gibt (n <100). Für jede Linie wird es später eine römische Zahl geben. Die Größe der römischen Ziffern darf 999 nicht überschreiten. * * Das Programm ist erforderlich, um N -Zeilen auszugeben, was die Dezimaldaten sind, die römischen Ziffern entsprechen. * * Zum Beispiel die Benutzereingabe: 3 lxxx xciii dccii * * dann sollte das Programm ausgeben: 80 93 702 * * @Author Administrator * */public class rometoarabic {public static void Main (String [] args) {// toDo automatisch generiertes Methode Streich System.println ("Wulin.com Testergebnis:"). Scanner mscanner = neuer Scanner (System.in); System.out.println (R2A (mscanner.Nextline ())); System.out.println (a2r (mscanner.Nextint ())); } / ** * Römische Ziffern in arabische Ziffern konvertieren Graph ['i'] = 1; Graph ['v'] = 5; Graph ['x'] = 10; Graph ['l'] = 50; Graph ['C'] = 100; Graph ['D'] = 500; Graph ['m'] = 1000; char [] num = m.tararray (); int sum = graph [num [0]]; für (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; } / ** * arabische Ziffern in römische Ziffern konvertieren 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", "x", "ix", "v", "iv", "i"}; if (Nummer <1 || Nummer> 3999) {rnumber = "-1"; } else {for (int i = 0; i <aarray.length; i ++) {while (number> = aArray [i]) {rNumber+= rarray [i]; Nummer -= aarray [i]; }} return rnumber; }}Auslaufergebnisse:
Für weitere Informationen zu Java -Algorithmen können Leser, die an dieser Website interessiert sind, die Themen "Java -Datenstruktur und Algorithmus -Tutorial", "Zusammenfassung der Java -Operation DOM -Knoten -Tipps", "Zusammenfassung der Java -Datei- und Verzeichnisoperationstipps" und "Zusammenfassung der Java -Cache -Operation Tipps" anzeigen
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.