eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Римські числа

опубліковано 07.06.15, 16:21:47

Не усі числа менші за 2000, а лише вхідні дані.

опубліковано 08.04.16, 13:01:45

Компилятор C++ Мы должны вернуть строку, но пишет, что main должен быть int. Как так?

опубліковано 27.05.16, 22:39:50

А как правильно определить ету переменую в Пайтон

опубліковано 16.03.18, 15:56:30

Складна задача, довго прийшлось "шурупати" мозгами

опубліковано 02.03.19, 12:11:08

не могу никак реыть ету задачу киньте кто решение

опубліковано 27.06.20, 14:28:11

С javascript работать невозможно. Попытался понять, что мне дают на вход: Оказалось это какой-то двумерный массив, размер которого меняется время от времени (я опытным путём определил, что там существуют элементы с индексами arr[6][3] и подобные)... (я это вычислял многоразовыми отправками, способом просмотра есть ли ошибка выполнения или нет). Шутники какие-то прям. Пытаться решить задачу для другого устройства если не знаешь его интерфейса это, конечно, очень весело, но не для меня.

опубліковано 24.08.20, 12:02:01

Получилось решить эту задачу, не используя другие системы счисления. Подсказка: можно завести два списка для римских чисел, которые складываются и которые отнимаются.

опубліковано 30.01.24, 11:12:37

,

опубліковано 01.04.24, 11:28:49

include <iostream>

include <string>

using namespace std;

const string Rom[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I", ""}; const int Ar[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1, 0};

string Roman(int arab) { string roman; int i = 0; while(arab > 0) { while(Ar[i] <= arab) { roman += Rom[i]; arab -= Ar[i]; } ++i; } return roman; } int Arab(string roman) { int arab = 0, i = 0; while(roman != "") { while(Rom[i] == roman.substr(0, Rom[i].length())) { roman.replace(0, Rom[i].length(), ""); arab += Ar[i]; } ++i; } return arab; }

int main() { string first, second; char c; while((c = getchar()) != '+') first.push_back(c); while((c = getchar()) != '\n') second.push_back(c); cout << Roman(Arab(first) + Arab(second)) << endl; return 0; }