import java.io.*;
public class RomanConversion
{
// Parallel arrays used in the conversion process.
private static final String[] RCODE = {"M", "CM", "D", "CD", "C", "XC", "L","XL","X","IX", "V","IV","I"};
private static final int[] BVAL = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
public static String binaryToRoman(int binary)
{
if (binary <= 0 || binary >= 4000)
throw new NumberFormatException("Value Outside Roman Numeral Range");
String roman="";// Roman notation will be accumualated here.
// Loop from biggest value to smallest, successively subtracting,
// from the binary value while adding to the roman representation.
for (int i=0;i<RCODE.length;i++)
{
while (binary>=BVAL[i])
{
binary-=BVAL[i];
roman+=RCODE[i];
}
}
return roman;
}
public static void main(String args[])throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter The Number:");
int no=Integer.parseInt(br.readLine());
System.out.print("Roman: "+binaryToRoman(no));
}
}
//--------------------------------------------------------------------------
/**
Output:-
Enter The Number:1995
Roman: MCMXCV
Enter The Number:880
Roman: DCCCLXXX
Enter The Number:3818
Roman: MMMDCCCXVIII
*/
0 comments:
Post a Comment