Pull to refresh

Comments 8

Автору конечно, спасибо, но римские цифры считаю убожеством, которое в западных странах дожило до наших дней в области летоисчисления. Слишком уж неэкономно расходуется знакоместо.
Тут лучше использовать StringBuilder а не StringBuffer ибо потокобезопасность последнего тут совершенно не нужна.
Автору, конечно, спасибо, но я этот алгоритм изучал еще в школе.

Даже если его кто-то не изучал, сомневаюсь, что он не сможет написать его самостоятельно.

Кстати, в моем варианте было гораздо меньше строчек…
Да уж. Школьные уроки программирования на хабре.
Пример: 1709 даст после этого шага «MDCCC».

1. 1709 — 1 * 1000 = 709 => M;
2. 709 — 1 * 500 = 209 => MD;
3. 209 — 2 * 100 = 9 => MDCC.
Судя по всему одна сотня лишняя.

А как будет выглядеть после преобразования приведенным алгоритмом число 1999?
MCMXCIX, MCMIC или MIM? А как правильно?
Тут все зависит от используемого диалекта системы счисления.
Согласно строгим правилам — только MCMXCIX
Согласно современной редакции правил — допустимы все три варианта, но MIM оптимальнее.

Кстати, в самом древнем варианте римской системы, никакой неоднозначности не было — число записывалось как MDCCCCLXXXXVIIII и никак иначе!
«наткнулся на свою старую школьную тетрадку… »
Ожидал, что тетрадка будет по информатике, ибо такая задача (преобразование римских чисел) как раз для уровня продвинутого школьника.
А почему вы решили писать свой велосипед?

Есть множество готовых решений — например вот симпатичное
Sign up to leave a comment.

Articles