Преобразование числа в римскую систему счисления на языке C
Процедура, которую я разработал, позволяет нам преобразовать переданное число в римскую систему счисления. Я сам опробовал этот код и преобразовал несколько чисел, чтобы проверить его работоспособность.cpp
#include
#include
#include
std⁚⁚string IntToRoman(int num) {
std⁚⁚vector
std⁚⁚vector
std⁚⁚string result;
for (size_t i 0; i < values.size; i ) {
while (num > values[i]) {
result symbols[i];
num — values[i];
}
}
return result;
}
int main {
int number;
std⁚⁚cout << ″Введите число для преобразования⁚ ″; std⁚⁚cin >> number;
std⁚⁚string roman IntToRoman(number);
std⁚⁚cout << ″Число ″ << number << ″ в римской системе счисления⁚ ″ << roman << std⁚⁚endl;
return 0;
}
В данном коде используется два вектора ‒ `values` (значения) и `symbols` (символы). Вектор `values` содержит числовые значения, которые соответствуют различным римским символам, а вектор `symbols` содержит сами символы.
Процедура `IntToRoman` выполняет преобразование числа в римскую систему счисления. Мы проходим по каждому элементу вектора `values` и проверяем, можно ли вычесть это значение из переданного числа. Если это возможно, добавляем соответствующий символ из вектора `symbols` в результирующую строку и вычитаем значение из переданного числа. Повторяем эту операцию до тех пор, пока число не станет меньше текущего значения вектора `values`.
В функции `main` мы запрашиваем у пользователя ввод числа, затем вызываем процедуру `IntToRoman` и выводим результат на экран.
Я проверил работу этого кода на нескольких числах, и результаты оказались верными. Например, число 25 преобразуется в XXV, а число 2021 преобразуется в MMXXI.Введите число для преобразования⁚ 25
Число 25 в римской системе счисления⁚ XXV