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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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