public class ROMANOS {
public String arToRom(int N){
if(N <= 10){
return arToRom10(N,0);
}
if(N <= 100){
int A=N/10;
return arToRom10(A,1)+arToRom10(N-(A*10),0);
}
if(N <= 1000){
int A=N/100,B=N-(A*100),C=B/10,D=B-C*10;
return arToRom10(A,2)+arToRom10(C,1)+arToRom10(D,0);
}
return "ERR";
}
private String arToRom10(int N,int B){
switch(N){
case 4:
switch (B) {
case 0:
return "IV";
case 1:
return "XL";
case 2:
return "CD";
}
case 5:
switch (B) {
case 0:
return "V";
case 1:
return "L";
case 2:
return "D";
}
case 6:
switch (B) {
case 0:
return "VI";
case 1:
return "LX";
case 2:
return "DC";
}
case 9:
switch (B) {
case 0:
return "IX";
case 1:
return "XC";
case 2:
return "CM";
}
case 10:
switch (B) {
case 0:
return "X";
case 1:
return "C";
case 2:
return "M";
}
}
if(N < 4){
switch (B) {
case 0:
return arToRomR(N, "I");
case 1:
return arToRomR(N,"X");
case 2:
return arToRomR(N,"C");
}
}
if(N > 5){
switch (B) {
case 0:
return "V"+arToRomR(N-5,"I");
case 1:
return "L"+arToRomR(N-5,"X");
case 2:
return "D"+arToRomR(N-5,"C");
}
}
return "ERR";
}
private String arToRomR(int N,String R){
String RE="";
for (int i = 0; i < N; i++) {
RE+=R;
}
return RE;
}
}