Blog
  • 2008

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Ritkán van szükség római számok használatára, legtöbbünk soha nem is találkozik azzal a helyzettel, amikor a feladat egy olyan programot írását követeli meg, amely az arab számainkat római számmá alakítja. Nézzünk meg egy elegáns megoldást.

Code Block
languagejava
titleMain.java
linenumberstrue
public class Main
{
  public static final int[] NUMBERS = new int[]
  {
    1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1
  };
  public static final String[] LETTERS = new String[]
  {
    "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"
  };

  public static String convert(int number)
  {
    for (int i = 0; i < NUMBERS.length; i++)
    {
      if (number >= NUMBERS[i])
      {
        return LETTERS[i] + convert(number - NUMBERS[i]);
      }
    }

    return "";
  }

  public static void main(String[] args)
  {
    System.out.println(convert(1234));
  }
}

Az eredmény: MCCXXXIV

Forrás: http://java2jee.blogspot.com/2008/04/funny-coding-test.html