Total members 11889 |It is currently Thu Feb 22, 2024 10:52 pm Login / Join Codemiles

Weka

/**
Sample program converting arab numerals into Roman ones. What you think guys, is it
short enough? Which code can I reduce and how can I make it more compact? **/

package Console;

import Numbers.ToFourThousand;

public class Main {
public static void main(String[] arg){

ToFourThousand number = new ToFourThousand();

number.input(2509);

}
}

package Numbers;

public class ToFourThousand
{
//Making a class-constructor.
public ToFourThousand(){};

//Four arrays for units, tents, hundreds and thousands.
String[] oneNine = new String[] { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};

String[] tenHundred = new String[] { "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};

String[] hundredThousand = new String[] { "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};

String[] thousands = new String[] { "M", "MM", "MMM" };

public void input(int input)
{
if(input < 1 || input >= 4000)
System.out.println("Sorry, not supported number. Try something between zero and 3999./n
Programmer doesn't have enoguh funds... :/"

int fstNumber = 0;
int sndNumber = 0;
int trdNumber = 0;

//Define thousands
int fthNumber=0;
if(input / 1000 == 1)
fthNumber = 0;
else if(input / 1000 == 2)
fthNumber = 1;
else if(input / 1000 == 3)
fthNumber = 2;

//Define units
if(input % 10 == input)
fstNumber = input;
else if(input % 100 == input)
fstNumber = input%10;
else if(input % 1000 == input)
fstNumber = (input%100)%10;
else if(input % 1000 <= input)
fstNumber = ((input%1000)%100)%10;

//Define tents
if(input % 1000 == input)
if(input % 100 == input)
sndNumber = input/10;
else
sndNumber = (input%100)/10;
else
sndNumber = ((input%1000)%100)/10;

//Define hundreds
if(input % 1000 == input)
trdNumber = input/100;
else
trdNumber = (input%1000)/100;

//Define the array container
String[] number = new String[4];

if(input % 1000 == 0 || input % 1000 < input)
number[0] = thousands[fthNumber];
else if(input % 1000 == input)
number[0] = "";

if(input % 1000 < 1000 && (input%1000)<100)
number[1] = "";
else if(input%1000 == input || (input % 1000 < 1000 && input % 1000 >= 100))
number[1] = hundredThousand[trdNumber - 1];

if((input % 1000 < input && (input%1000)%100 >= 10) || (input%1000 == input &&
input%100 >= 10))
number[2] = tenHundred[sndNumber - 1];
else
number[2] = "";

number[3] = oneNine[fstNumber];

for (String currentNumber : number)
{
if("".equals(currentNumber))
continue;

System.out.print(currentNumber);
}
}

}

 Tweet
Author:
 Posts: 1Have thanks: 0 time
 Page 1 of 1 [ 1 post ]

Related Posts  to : Converting arab in Roman Numerals
ordered list with roman numbers     -
Benefits of converting PowerPoint presentations to DVD     -
Converting Session object into string     -