logo

Konvertieren Sie Ganzzahlen in römische Ziffern in Java

Es ist ein Problem, das in Interviews mit führenden IT-Unternehmen häufig gestellt wird Google, Amazon, TCS, Und Accenture, usw. Durch die Lösung des Problems möchte man die logischen Fähigkeiten, das kritische Denken und die Problemlösungsfähigkeiten des Befragten überprüfen. In diesem Abschnitt werden wir also diskutieren wie man in Java eine Ganzzahl in eine römische Zahl umwandelt mit unterschiedlichen Ansätzen und Logiken. Außerdem werden wir dafür Java-Programme erstellen.

Konvertieren Sie Ganzzahlen in römische Ziffern in Java

Römische Zahlen

Römische Ziffern sind die symbolische Darstellung von Zahlen. Diese werden normalerweise in Zifferblättern, in der Musiktheorie usw. verwendet. Es gibt sie Sieben Buchstaben zur Darstellung römischer Ziffern. In der folgenden Tabelle sind die römischen Ziffern und die entsprechenden Dezimalwerte aufgeführt.

Konvertieren Sie einen String in eine Ganzzahl
Charakter Römische Ziffer
ICH 1
IN 5
X 10
L fünfzig
C 100
D 500
M 1000

Römische Ziffern haben folgende Eigenschaften:

Normalerweise wird es von links nach rechts vom höchsten zum niedrigsten Wert geschrieben, mit Ausnahme einiger Sonderfälle (wo das linke Zeichen kleiner ist als das rechte Zeichen). Beispielsweise entspricht IV in römischen Ziffern 4. Es kann nicht als IIII geschrieben werden.

In einem solchen Fall subtrahieren wir den Wert des linken Zeichens vom Wert des rechten Zeichens. Beispielsweise beträgt IV 5-1=4. Auf die gleiche Weise wird IX 10-1=9 sein.

Betrachten Sie die folgenden Fälle:

  • Die römische Zahl I kann vor V oder X platziert werden und steht für die Subtraktion von eins. Zum Beispiel ist IV (5-1) = 4 und 9 ist IX (10-1) = 9.
  • Die römische Zahl X kann vor L oder C stehen und steht für die Subtraktion von zehn. Beispiel: XL (50-10) = 40 und XC (100-10) = 90.
  • Die römische Zahl C vor D oder M steht für die Subtraktion von Hundert. Beispiel: CD (500-100) = 400 und CM (1000-100) = 900.

Ansatz

Ein Ansatz zur Umwandlung von Ganzzahlen in römische Zahlen ist einfach. Erstellen Sie zunächst zwei Arrays, eines zum Speichern der Werte römischer Ziffern und eines zum Speichern der entsprechenden Buchstaben. Erstellen Sie eine Instanz der StringBuilder-Klasse. Vergleichen Sie nun die ganze Zahl mit römischen Ziffern und gehen Sie wie folgt vor:

  • Wenn die Eingabenummer >= höchste römische Zahl ist, fügen Sie sie zum String-Builder hinzu und reduzieren Sie den entsprechenden Wert aus der Eingabenummer.
  • Wenn die Eingabenummer ist

Der StringBuilder ist die entsprechende römische Zahl.

Lassen Sie uns die obigen Schritte anhand eines Beispiels verstehen.

Datenbankdesign in DBMS

Beispiel

Angenommen, wir müssen 36 in römische Zahlen umwandeln. Vergleichen Sie die Ganzzahl wie folgt mit römischen Werten.

1000>36 = ​​ja, prüfen Sie mit der nächsten römischen Ziffer.

900>36 = ​​ja, prüfen Sie mit der nächsten römischen Ziffer.

500>36 = ​​ja, prüfen Sie mit der nächsten römischen Ziffer.

400>36 = ​​ja, prüfen Sie mit der nächsten römischen Ziffer.

100>36 = ​​ja, prüfen Sie mit der nächsten römischen Ziffer.

90>36 = ​​ja, prüfen Sie mit der nächsten römischen Ziffer.

50>36 = ​​ja, prüfen Sie mit der nächsten römischen Ziffer.

40>36 = ​​ja, prüfen Sie mit der nächsten römischen Ziffer.

str zu int

10<36, add corresponding literal 'x' to result, result='X,' n='36-10=26</p'>

10<26, add corresponding literal 'x' to result, result='XX,' n='26-10=16</p'>

10<16, add corresponding literal 'x' to result, result='XXX,' n='16-10=6</p'>

10>6, mit der nächsten römischen Ziffer prüfen, Ergebnis =XXX

9>6, mit der nächsten römischen Ziffer prüfen, Ergebnis =XXX

5<6, add corresponding literal 'v' to result, result='XXXV,' n='6-5=1</p'>

5>1, mit der nächsten römischen Ziffer prüfen, Ergebnis =XXXV

Karten Java

4>1, mit der nächsten römischen Ziffer prüfen, Ergebnis =XXXV

1==1, entsprechendes Literal „I“ zum Ergebnis hinzufügen, Ergebnis =XXXVI, N = 1-1=0

Ergebnis = XXXVI

Java-Programm zum Konvertieren von Ganzzahlen in römische Ziffern

IntegerToRoaman.java

 public class IntegerToRoman { public static void intToRoman(int num) { System.out.println(&apos;Integer: &apos; + num); int[] values = {1000,900,500,400,100,90,50,40,10,9,5,4,1}; String[] romanLetters = {&apos;M&apos;,&apos;CM&apos;,&apos;D&apos;,&apos;CD&apos;,&apos;C&apos;,&apos;XC&apos;,&apos;L&apos;,&apos;XL&apos;,&apos;X&apos;,&apos;IX&apos;,&apos;V&apos;,&apos;IV&apos;,&apos;I&apos;}; StringBuilder roman = new StringBuilder(); for(int i=0;i= values[i]) { num = num - values[i]; roman.append(romanLetters[i]); } } System.out.println(&apos;Corresponding Roman Numerals is: &apos; + roman.toString()); } public static void main(String args[]) { intToRoman(125); intToRoman(252); intToRoman(1000); intToRoman(1010); } } 

Ausgabe:

Konvertieren Sie Ganzzahlen in römische Ziffern in Java

Eine andere Möglichkeit, römische Zahlen zu drucken, besteht darin, vier Arrays mit Stellenwerten zu erstellen. Zum Beispiel Einheit, Zehner, Hunderter und Tausender. Anschließend wird der Stellenwert berechnet und in römische Zahlen umgewandelt.

IntegerToRoman.java

 public class IntegerToRoman { //method to convert integer to roman //function that converts integer to roman public static String intToRoman(int number) { //creating array of place values String[] thousands = {&apos;&apos;, &apos;M&apos;, &apos;MM&apos;, &apos;MMM&apos;}; String[] hundreds = {&apos;&apos;, &apos;C&apos;, &apos;CC&apos;, &apos;CCC&apos;, &apos;CD&apos;, &apos;D&apos;, &apos;DC&apos;, &apos;DCC&apos;, &apos;DCCC&apos;, &apos;CM&apos;}; String[] tens = {&apos;&apos;, &apos;X&apos;, &apos;XX&apos;, &apos;XXX&apos;, &apos;XL&apos;, &apos;L&apos;, &apos;LX&apos;, &apos;LXX&apos;, &apos;LXXX&apos;, &apos;XC&apos;}; String[] units = {&apos;&apos;, &apos;I&apos;, &apos;II&apos;, &apos;III&apos;, &apos;IV&apos;, &apos;V&apos;, &apos;VI&apos;, &apos;VII&apos;, &apos;VIII&apos;, &apos;IX&apos;}; return thousands[number / 1000] + hundreds[(number % 1000) / 100] + tens[(number % 100) / 10] + units[number % 10]; } public static void main(String args[]) { //creating an array of integers to be convert into roman int[] numbers = {13, 21, 38, 50, 190, 141, 117, 120, 125, 138, 149, 6, 712, 181, 197, 918, 199, 1100, 1101, 1248, 1253}; for (int number : numbers) { System.out.printf(&apos;%4d -&gt; %8s
&apos;, number, intToRoman(number)); } } } 

Ausgabe:

Konvertieren Sie Ganzzahlen in römische Ziffern in Java

Hinweis: Das obige Java-Programm funktioniert bis 3999 einwandfrei.

Drucken Sie römische Ziffern in einem bestimmten Bereich

DecimaltoRoman.java

 import java.util.LinkedHashMap; import java.util.Map; public class DecimaltoRoman { public static String RomanNumerals(int num) { LinkedHashMap romanNumerals = new LinkedHashMap(); //storing roman letters and corresponding decimal values in HashMap romanNumerals.put(&apos;M&apos;, 1000); romanNumerals.put(&apos;CM&apos;, 900); romanNumerals.put(&apos;D&apos;, 500); romanNumerals.put(&apos;CD&apos;, 400); romanNumerals.put(&apos;C&apos;, 100); romanNumerals.put(&apos;XC&apos;, 90); romanNumerals.put(&apos;L&apos;, 50); romanNumerals.put(&apos;XL&apos;, 40); romanNumerals.put(&apos;X&apos;, 10); romanNumerals.put(&apos;IX&apos;, 9); romanNumerals.put(&apos;V&apos;, 5); romanNumerals.put(&apos;IV&apos;, 4); rssomanNumerals.put(&apos;I&apos;, 1); //variable for string the result String result = &apos;&apos;; //loop iterate over Map for(Map.Entry entry : romanNumerals.entrySet()) { int matches = num/entry.getValue(); result = result+repeat(entry.getKey(), matches); num = num % entry.getValue(); } return result; } public static String repeat(String s, int n) { if(s == null) { return null; } final StringBuilder sb = new StringBuilder(); for(int i = 0; i <n; 1 200 i++) { sb.append(s); } converts into string return sb.tostring(); driver code public static void main(string args[]) prints roman numerals from to for (int i="1;i" '+romannumerals(i)); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/coding-problems/50/convert-integer-roman-numerals-java-4.webp" alt="Convert Integer to Roman Numerals in Java"> <p>Besides the above methods, there are various ways to convert integer to roman such as Using TreeMap, using switch case, etc. </p> <hr></n;>

Äquivalenzgesetze