eolymp
bolt
Try our new interface for solving problems
Problems

Roman numerals

published at 6/7/15, 4:21:47 pm

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

published at 4/8/16, 1:01:45 pm

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

published at 5/27/16, 10:39:50 pm

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

published at 3/16/18, 3:56:30 pm

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

published at 3/2/19, 12:11:08 pm

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

published at 6/27/20, 2:28:11 pm

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

published at 8/24/20, 12:02:01 pm

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

published at 1/30/24, 11:12:37 am

,

published at 4/1/24, 11:28:49 am

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; }