Используя PHP, я хотел бы преобразовать строку, содержащую римское число, в ее целочисленное представление. Мне это нужно, потому что мне нужно произвести на них вычисления.
Достаточно распознать только основные символы римских цифр, например:
$roman_values=array(
'I' => 1,
'V' => 5,
'X' => 10,
'L' => 50,
'C' => 100,
'D' => 500,
'M' => 1000,
);
Это означает, что максимально возможное число - 3999 (MMMCMXCIX) . Я буду использовать N
для обозначения нуля, кроме того, что поддерживаются только положительные целые числа.
Я не могу использовать библиотеку PEAR для римских чисел.
Я нашел этот отличный вопрос о том, как проверить, содержит ли строка действительную римскую цифру:
Как сопоставить только действительные римские числа с обычными выражение?
Как лучше всего это кодировать?