(In Java) Write a program that converts a number entered in Roman numerals to a
ID: 3735548 • Letter: #
Question
(In Java) Write a program that converts a number entered in Roman numerals to a decimal. Your program should consist of a class, say, Roman. An object of type Roman should do the following: 1.) Store the number as a Roman numeral b.) Convert and store the number into decimal. c.) Print the number as a Roman numeral or decimal number as requested by the user. The decimal values of the Roman numerals are: M 1000 D 500 C 100 L 50 X 10 V 5 I 1 d.) Your class must contain the method romanToDecimal to convert a Roman numeral into its equivalent decimal number e.) Test your program using the following Roman numerals: MCXIV, CCCLIX and MDCLXVI
Explanation / Answer
Following is the java Program:
import java.util.*;
public class RomanToNumber
{
int value(char r)
{
if (r == 'I')
return 1;
if (r == 'V')
return 5;
if (r == 'X')
return 10;
if (r == 'L')
return 50;
if (r == 'C')
return 100;
if (r == 'D')
return 500;
if (r == 'M')
return 1000;
return -1;
}
// Finds decimal value of a given romal numeral
int romanToDecimal(String str)
{
// Initialize result
int res = 0;
for (int i=0; i<str.length(); i++)
{
int s1 = value(str.charAt(i));
if (i+1 <str.length())
{
int s2 = value(str.charAt(i+1));
if (s1 >= s2)
{
res = res + s1;
}
else
{
res = res + s2 - s1;
i++;
}
}
else
{
res = res + s1;
i++;
}
}
return res;
}
public static void main(String args[])
{
RomanToNumber ob = new RomanToNumber();
String str = "MCXIV";
System.out.println("Integer form of Roman Numeral" + " is " + ob.romanToDecimal(str));
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.