Преобразование целых чисел в их эквиваленты римских цифрJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Преобразование целых чисел в их эквиваленты римских цифр

Сообщение Anonymous »

Для этой диаграммы:
Изображение

Я хочу преобразовать целые числа в их уважаемые латинские буквы. Например, предположим, что у нас есть список целых чисел, например: [1, 49, 23]. Метод должен возвращать что-то вроде этого:

Код: Выделить всё

['I', 'XLIX', 'XXIII']. 49 — это 40 + 9, поэтому это будет «XLIX».
Вот что я написал на Java:
public static List romanizer(List numbers) {
String[] romanLetters = {"I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M" };
int[] numberArray = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000 };
ArrayList result = new ArrayList();
int times = 0;

for (int h = numberArray.length - 1; h >= 0; h--) {
for (int d = 0; d < numbers.size(); d++) {
times = numbers.get(d) / numberArray[h];
numbers.set(d, numbers.get(d) % numberArray[h]);
}
while (times > 0) {
result.add(romanLetters[h]);
times--;
}
}
return result;
}
Но вместо этого у меня получилось что-то вроде этого: [X, X, I, I, I]. Кто-нибудь может помочь/увидеть проблему?

Подробнее здесь: https://stackoverflow.com/questions/684 ... quivalents
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»