Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ptc;
- import java.util.Scanner;
- public class RomanNumeral extends java.lang.Number
- {
- final static RomanValue[] ROMAN_VALUE_TABLE = {new RomanValue(1000, "M"), new RomanValue(900, "CM"),
- new RomanValue(500, "D"), new RomanValue(400, "CD"), new RomanValue(100, "C"), new RomanValue(90, "XC"),
- new RomanValue(50, "L"), new RomanValue(40, "XL"), new RomanValue(10, "X"), new RomanValue(9, "IX"),
- new RomanValue(5, "V"), new RomanValue(4, "IV"), new RomanValue(1, "I")};
- public static String int2roman(int n)
- {
- if (n >= 4000 || n < 1)
- {
- throw new NumberFormatException("Numbers must be in range 1-3999");
- }
- StringBuffer result = new StringBuffer(10);
- //... Start with largest value, and work toward smallest.
- for (RomanValue equiv : ROMAN_VALUE_TABLE)
- {
- //... Remove as many of this value as possible (maybe none).
- while (n >= equiv.intVal)
- {
- n -= equiv.intVal; // Subtract value.
- result.append(equiv.romVal); // Add roman equivalent.
- }
- }
- return result.toString();
- }
- private static class RomanValue
- {
- int intVal; // Integer value.
- String romVal; // Equivalent Roman numeral.
- RomanValue( int dec, String rom )
- {
- this.intVal = dec;
- this.romVal = rom;
- }
- }
- public static void main(String args[])
- {
- Scanner scanner = new Scanner( System.in );
- System.out.println("Enter an integer number to convert to Roman Numeral: ");
- int input = scanner.nextInt();
- System.out.println("You entered:" +input);
- String temp = int2roman(input);
- System.out.println(+input+" in Roman Numeral form is: " +temp);
- }
- @Override
- public double doubleValue()
- {
- // TODO Auto-generated method stub
- return 0;
- }
- @Override
- public float floatValue()
- {
- // TODO Auto-generated method stub
- return 0;
- }
- @Override
- public int intValue()
- {
- // TODO Auto-generated method stub
- return 0;
- }
- @Override
- public long longValue()
- {
- // TODO Auto-generated method stub
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement