2019-02-19 14:23:20 +01:00
|
|
|
package com.songoda.epicenchants.utils.single;
|
|
|
|
|
|
|
|
import java.util.TreeMap;
|
|
|
|
|
|
|
|
public class RomanNumber {
|
2019-04-24 11:40:40 +02:00
|
|
|
private final static TreeMap<Integer, String> TREE_MAP = new TreeMap<Integer, String>() {{
|
2019-02-19 14:23:20 +01:00
|
|
|
put(1000, "M");
|
|
|
|
put(900, "CM");
|
|
|
|
put(500, "D");
|
|
|
|
put(400, "CD");
|
|
|
|
put(100, "C");
|
|
|
|
put(90, "XC");
|
|
|
|
put(50, "L");
|
|
|
|
put(40, "XL");
|
|
|
|
put(10, "X");
|
|
|
|
put(9, "IX");
|
|
|
|
put(5, "V");
|
|
|
|
put(4, "IV");
|
|
|
|
put(1, "I");
|
2019-04-24 11:40:40 +02:00
|
|
|
put(-1, "-1");
|
2019-02-19 14:23:20 +01:00
|
|
|
}};
|
|
|
|
|
|
|
|
public static String toRoman(int number) {
|
2019-04-24 11:40:40 +02:00
|
|
|
int l = TREE_MAP.floorKey(number);
|
2019-02-19 14:23:20 +01:00
|
|
|
if (number == l) {
|
2019-04-24 11:40:40 +02:00
|
|
|
return TREE_MAP.get(number);
|
2019-02-19 14:23:20 +01:00
|
|
|
}
|
2019-04-24 11:40:40 +02:00
|
|
|
return TREE_MAP.get(l) + toRoman(number - l);
|
2019-02-19 14:23:20 +01:00
|
|
|
}
|
|
|
|
}
|