Завершено
5
16.11.2020, 12:32
30.11.2020, 08:01
Реализовать функции перевода из римской системы счисления в десятичную и обратно.
int roman_to_decimal(char *str_roman)
{
/* переводит из римской в десятичную и возвращает результат */
}
int decimal_to_roman(int number, char *string, int maxlen)
{
/*
* number - исходное число
* string - строка, куда сохранять результат
* maxlen - количество байт, доступных в строке
*
* Если результат не помещается в строку, функция записывает
* максимально возможное количество символов, завершая их
* нулевым символом, и возвращает 1.
* Если результат помещается, функция возвращает 0.
*/
/* ... */
}
Примечание. Работа функций должна быть протестирована с помощью макроса assert
.
Значения букв в римской системе:
Правила записи:
Каждый меньший знак, поставленный слева от большего, вычитается из него.
Каждый меньший знак, поставленный справа от большего, прибавляется к нему. Это правило обычно применяется только во избежание четырёхкратного повторения одной и той же цифры.