package miscellaneous;
import java.util.LinkedHashMap;
import java.util.Map;
public class IntegerToRomanNumber {
public static void main(String[] args) {
new IntegerToRomanNumber();
}
private Map<Integer, String> init() {
Map<Integer, String> m = new LinkedHashMap<Integer, String>();
m.put(100, "C");
m.put(90, "XC");
m.put(50, "L");
m.put(40, "XL");
m.put(10, "X");
m.put(9, "IX");
m.put(5, "V");
m.put(4, "IV");
m.put(1, "I");
return m;
}
public IntegerToRomanNumber() {
Map<Integer, String> map = init();
System.out.println(getRomanEquivalent(208, map));
}
private String getRomanEquivalent(int number, Map<Integer, String> map){
if(number<=0)
return ""+number;
if(map.containsKey(number))
return (String)map.get(number);
String str = "";
for (Map.Entry<Integer, String> entry : map.entrySet()) {
int key = entry.getKey();
while(key<=number){
str = str + entry.getValue();
number = number - key;
}
}
return str;
}
}
Questions on Stack, Queues, Linkedlist, Binary Trees, Sorting, Searching, Graphs etc with solution using Java Language.
Wednesday, 24 December 2014
Integer to Roman Number Representation
Labels:
miscellaneous
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment