From 5334e3bbb44ff6503dd8785512f2d01e9348906b Mon Sep 17 00:00:00 2001 From: uhan Date: Sun, 31 Mar 2024 22:48:29 +0900 Subject: [PATCH] feature/Convert-to-Roman-No-java - implement converter(integer <-> roman number) class --- JAVA/ConvertToRomanNo.java | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 JAVA/ConvertToRomanNo.java diff --git a/JAVA/ConvertToRomanNo.java b/JAVA/ConvertToRomanNo.java new file mode 100644 index 0000000..ac05806 --- /dev/null +++ b/JAVA/ConvertToRomanNo.java @@ -0,0 +1,30 @@ +package JAVA; + +public class ConvertToRomanNo { + + // Arrays defining the values and symbols for Roman number conversion + private static final int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; + private static final String[] symbols = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; + + public static String convertToRoman(int n) { + StringBuilder romanNumber = new StringBuilder(); + + for (int i = 0; i < values.length; i++) { + // Repeat until the given number n is greater than or equal to values[i] + while (n >= values[i]) { + n -= values[i]; // Subtract values[i] from n + romanNumber.append(symbols[i]); // Add the corresponding Roman number symbol to the result + } + } + return romanNumber.toString(); // Return the result string + } + + public static void main(String[] args) { + // Test case code. + System.out.println(convertToRoman(5)); // V + System.out.println(convertToRoman(3)); // III + System.out.println(convertToRoman(58)); // LVIII + System.out.println(convertToRoman(1994)); // MCMXCIV + System.out.println(convertToRoman(3018)); // MMMXVIII + } +}