package roman.engine;
public class RomanNumerals {
public static final String I = "I";
public static final String X = "X";
public static final String V = "V";
public static final String L = "L";
public static final String C = "C";
public static final String D = "D";
public static final String M = "M";
public static String toRoman(int number) {
return
digitToRoman(number / 100, C, D, M) +
digitToRoman((number % 100) / 10, X, L, C) +
digitToRoman(number % 10, I, V, X);
}
private static String digitToRoman(int number, String unit, String half, String tenth) {
if (number >= 10) {
return tenth + digitToRoman(number - 10, unit, half, tenth);
}
if (number == 9) {
return unit + tenth;
}
if (number >= 5) {
return half + digitToRoman(number - 5, unit, half, tenth);
}
if (number == 4) {
return unit + half;
}
if (number >= 1) {
return unit + digitToRoman(number - 1, unit, half, tenth);
}
return "";
}
}