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.
(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.
Here is my code so far :
package javaapplication13;
/** * * @author Abby Rink */ import java.util.*;
public class javaapplication13;
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 { int s1 = value(str.charAt(i)); if (i+1 { 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)); } }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started