Hej, to mój drugi już temat odnośnie tego tematu.
Piszę teraz zamianę liczb arabskich an rzymskie.
Napisałem coś takiego, ale domyślam się, że to boli w oczy i jest zahardkodowane, wiecie jak to może usprawnić?
public static void main(String[] args) {
int ArabicNumber = 1131;
int tysiac = ArabicNumber / 1000;
int setki = ArabicNumber / 100 % 10;
int dziesiatki = ArabicNumber / 10 % 10;
int jednosci = ArabicNumber % 10;
StringBuilder RomanString = new StringBuilder();
String RomanThousand = "M";
String RomanHundred = "C";
String RomanTen = "X";
String RomanOne = "I";
for (int i = 0; i < tysiac; i++) {
RomanString.append(RomanThousand);
}
for (int i = 0; i < setki; i++) {
if (setki > 3) {
if (setki == 4) {
RomanString.append("CD");
break;
}
if (setki == 5) {
RomanString.append("D");
break;
}
if (setki == 6) {
RomanString.append("DC");
break;
}
if (setki == 7) {
RomanString.append("DCC");
break;
}
if (setki == 8) {
RomanString.append("DCCC");
break;
}
if (setki == 9) {
RomanString.append("CM");
break;
}
}
RomanString.append(RomanHundred);
}
for (int i = 0; i < dziesiatki; i++) {
if (dziesiatki > 3) {
if (dziesiatki == 4) {
RomanString.append("XL");
break;
}
if (dziesiatki == 5) {
RomanString.append("L");
break;
}
if (dziesiatki == 6) {
RomanString.append("LX");
break;
}
if (dziesiatki == 7) {
RomanString.append("LXX");
break;
}
if (dziesiatki == 8) {
RomanString.append("LXXX");
break;
}
if (dziesiatki == 9) {
RomanString.append("XC");
break;
}
}
RomanString.append(RomanTen);
}
for (int i = 0; i < jednosci; i++) {
if (jednosci > 3) {
if (jednosci == 4) {
RomanString.append("IV");
break;
}
if (jednosci == 5) {
RomanString.append("V");
break;
}
if (jednosci == 6) {
RomanString.append("VI");
break;
}
if (jednosci == 7) {
RomanString.append("VII");
break;
}
if (jednosci == 8) {
RomanString.append("VIII");
break;
}
if (jednosci == 9) {
RomanString.append("IX");
break;
}
}
RomanString.append(RomanOne);
}
System.out.println(RomanString);
}