Sunday, September 8, 2013

Program to convert Integer to Roman literals form.(Only applicable for 1 to 1000)

Algorithm:
  1. Make a Tree map of basic elements which ll store Roman literals corresponding to Basic elements like 1 ,4,5,9,10,40,50,90,100 and so on..
  2. Get floor value for input  from map and print corresponding roman value.
  3. Subtract floor value from input value and do step 2 and step 3 until input value > 0
Source Code:
package com.learning;

import java.util.Scanner;
import java.util.TreeMap;

public class IntToRomanConversion {

 private static Scanner s;

 /**
  * @param args
  */
 public static void main(String[] args) {
  System.out.println("Enter the No to Convert :");
        s = new Scanner(System.in);
        int num = s.nextInt();
  converter(num);
  
 }

 // Method for converting Decimal to Roman
 
    static void converter(int input){
 
 
         TreeMap basicElement = new TreeMap();
          
          basicElement.put(1,"I");
          basicElement.put(4,"IV");
          basicElement.put(5,"V");
          basicElement.put(9, "IX");
          basicElement.put(10,"X");
          basicElement.put(40, "XL");
          basicElement.put(50,"L");
          basicElement.put(90, "XC");
          basicElement.put(100,"C");
          basicElement.put(400, "CD");
          basicElement.put(500,"D");
          basicElement.put(900, "CM");
          basicElement.put(1000,"M");
          
          while(input>0){    
           Integer lower=basicElement.floorKey(input);
           System.out.print(basicElement.get(lower));
              input=input-lower;
          }      
     } 
}

Sample Input:
Enter the No to Convert :
123
Sample Output: 
CXXIII

No comments:

Post a Comment