Cześć, piszę kalkulator liczb arabskich, jestem przy zamieniainu liczb arabaskich na rzymskie.
Napisałem coś takiego, a raczej zahardkodowałem. Wiecie może jak to przerobić, żeby to ładniej wyglądało?
public class ArabicToRomanNumbersChanger {
public StringBuilder changeRomanToArabicNumber(int ArabicNumber)
{
int thousand = ArabicNumber / 1000;
int hundred = ArabicNumber / 100 % 10;
int tens = ArabicNumber / 10 % 10;
int units = ArabicNumber % 10;
StringBuilder RomanString = new StringBuilder();
String RomanThousand = "M";
String RomanHundred = "C";
String RomanTen = "X";
String RomanOne = "I";
for (int i = 0; i < thousand; i++) {
RomanString.append(RomanThousand);
}
for (int i = 0; i < hundred; i++) {
if (hundred > 3) {
if (hundred == 4) {
RomanString.append("CD");
break;
}
if (hundred == 5) {
RomanString.append("D");
break;
}
if (hundred == 6) {
RomanString.append("DC");
break;
}
if (hundred == 7) {
RomanString.append("DCC");
break;
}
if (hundred == 8) {
RomanString.append("DCCC");
break;
}
if (hundred == 9) {
RomanString.append("CM");
break;
}
}
RomanString.append(RomanHundred);
}
for (int i = 0; i < tens; i++) {
if (tens > 3) {
if (tens == 4) {
RomanString.append("XL");
break;
}
if (tens == 5) {
RomanString.append("L");
break;
}
if (tens == 6) {
RomanString.append("LX");
break;
}
if (tens == 7) {
RomanString.append("LXX");
break;
}
if (tens == 8) {
RomanString.append("LXXX");
break;
}
if (tens == 9) {
RomanString.append("XC");
break;
}
}
RomanString.append(RomanTen);
}
for (int i = 0; i < units; i++) {
if (units > 3) {
if (units == 4) {
RomanString.append("IV");
break;
}
if (units == 5) {
RomanString.append("V");
break;
}
if (units == 6) {
RomanString.append("VI");
break;
}
if (units == 7) {
RomanString.append("VII");
break;
}
if (units == 8) {
RomanString.append("VIII");
break;
}
if (units == 9) {
RomanString.append("IX");
break;
}
}
RomanString.append(RomanOne);
}
return RomanString;
}
}