-
Notifications
You must be signed in to change notification settings - Fork 89
Expand file tree
/
Copy path12-integer-to-roman.java
More file actions
34 lines (27 loc) · 1.26 KB
/
12-integer-to-roman.java
File metadata and controls
34 lines (27 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.HashMap;
import java.util.Map;
class Solution {
public String intToRoman(int num) {
int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
String[] symbols = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
StringBuilder result = new StringBuilder();
for (int i = 0; i < values.length; i++) {
while (num >= values[i]) {
result.append(symbols[i]);
num -= values[i];
}
}
return result.toString();
}
public static void main(String[] args) {
Solution sol = new Solution();
System.out.println("Testing Integer to Roman:");
System.out.println("3 -> " + sol.intToRoman(3) + " (Expected: III)");
System.out.println("58 -> " + sol.intToRoman(58) + " (Expected: LVIII)");
System.out.println("1994 -> " + sol.intToRoman(1994) + " (Expected: MCMXCIV)");
System.out.println("9 -> " + sol.intToRoman(9) + " (Expected: IX)");
System.out.println("4 -> " + sol.intToRoman(4) + " (Expected: IV)");
System.out.println("1 -> " + sol.intToRoman(1) + " (Expected: I)");
System.out.println("3999 -> " + sol.intToRoman(3999) + " (Expected: MMMCMXCIX)");
}
}