Numeric to Roman number conversion

Roman number conversion from numeric to roman.

The code seems  bigger but it is simple logic, if you want to try copy paste the code in the appropriate class name and execute the main class.....


/**
 *
 */
package numbers;

/**
 * @author PraveenKumar
 *
 */
public class RomanConversionImpl implements IromanConversion{

public String convertRomanNumbers(int number) throws Exception {
String romanNumber="";
boolean falg=new ISValidNumber().isValidNumber(number);
if(!falg){
romanNumber=romanNumber+NumberRangeConversion.converNumber(number);
}else{
throw new Exception("Invalid Number please validate your input!!!");
}
NumberRangeConversion.reset();
return romanNumber;
}


}






/**
 * 
 */
package numbers;

/**
 * @author PraveenKumar
 * 
 */
public class NumberRangeConversion {
static String roman = "";

public static String converNumber(int number) {

if (number > 0)
{
if (number >= 1 && number < 5)
{
if (number == 4)
{
roman += IromanConversion.ONE + IromanConversion.FIVE;
number = number - 4;
} else
{
roman += IromanConversion.ONE;
number = number - 1;
}
}
if (number >= 5 && number < 10)
{
if (number == 9)
{
roman += IromanConversion.ONE + IromanConversion.TEN;
number = number - 9;
} else
{
roman += IromanConversion.FIVE;
number = number - 5;
}
}
if (number >= 10 && number < 40)
{

roman += IromanConversion.TEN;
number = number - 10;

}
if (number >= 40 && number < 50)
{
roman += IromanConversion.TEN + IromanConversion.FIFTY;
number = number - 40;
}
if (number >= 50 && number < 90)
{
roman += IromanConversion.FIFTY;
number = number - 50;
}
if (number >= 90 && number < 100)
{
roman += IromanConversion.TEN + IromanConversion.HNDRD;
number = number - 90;
}
if (number >= 100 && number < 400)
{
roman += IromanConversion.HNDRD;
number = number - 100;
}
if (number >= 400 && number < 500)
{
roman += IromanConversion.HNDRD + IromanConversion.F5_HUNDRD;
number = number - 400;
}
if (number >= 500 && number < 1000)
{
roman += IromanConversion.F5_HUNDRD;
number = number - 500;
}
if (number >= 1000 && number <= 6000)
{
roman += IromanConversion.K_1;
number = number - 1000;
}
}
if (number > 0)
{
converNumber(number);
}
// System.out.println("Number :: "+number);
return roman;
}

public static void reset() {
roman = "";
}
}





/**
 * 
 */
package numbers;

/**
 * @author PraveenKumar
 *
 */
public interface IromanConversion extends RomanNumber{

public String convertRomanNumbers(int number) throws Exception;
}



/**
 * 
 */
package numbers;

/**
 * @author PraveenKumar
 *
 */
public  interface RomanNumber {

public static final String ONE="I";
public static final String FIVE="V";
public static final String TEN="X";
public static final String FIFTY="L";
public static final String HNDRD="C";
public static final String F5_HUNDRD="D";
public static final String K_1="M";
}



/**
 * 
 */
package numbers;

/**
 * @author PraveenKumar
 *
 */
public class RomanConversion {

/**
* @param args
*/
public static void main(String[] args) {
for(int i=1;i<3500 div="" i="">
try
{
System.out.println("i= "+i+" -->"+new RomanConversionImpl().convertRomanNumbers(i));
} catch (Exception e)
{
e.printStackTrace();
System.exit(0);
}
}
}

}

Comments

Popular posts from this blog

Spring MVC with Sqlite sample

Struts Tutorial Page