я нифига не понял, но когда еще кто то понял то почувствовал себя ущербным, о какой пустоши идет речь? Я только в Фалауте знаю Пустошь:0048:
Вид для печати
IIM не 998 а 1000. ибо если следовать правилам (цитата вебмастера с википедии) то IIM = I + IM = I + (M - I) = M = 1000
грубо говоря если есть число ABCDE то между символами надо поставить плюсы везде. за исключением случая когда следующий символ меньше текущего, тогда надо отнять текущий символ.
Ну хоть кто-то читать умеет. Именно так и написано, к КРАТЧАЙШЕМУ виду. Что написано, то и делаем. Не указано же что к ПРАВИЛЬНОМУ виду? ВОт значит и не надо это.
Сразу видно, кто действительно с заказчиками много сталкивается, думаю что про инициативность все знают шутку. А больше всего люблю анекдот, типа про военных:
- Бойцы, сегодня будем грузить люминий.
- Товарищ командир, не люминий, а алюминий.
- Тааааак... а дюже умный будет грузить чугуний...
Запомните этот анекдот :) Ибо так и получается ВСЕГДА.
Жаль что поздно я это понял, тогда решение было бы проще...
echo null;
Не "вадидный" конечно результат, но мы можем предположить что он подходит (и пофигу что он неправильный)
По поводу правильных результатов надо было бы (внимание спойлер, а точнее почти готовое решение)
- Решить о каком стандарте речь (о том в котором символы не должны повторяться более трёх раз или в том в котором могут)
- В зависимости от этого проверить является ли число более чем 4000 (или не проверять если используем вариант где плевать на повторение символов)
- Составить число согласно правилам (или не соглашаясь с правилами, но в таком случае решение было бы очень "тяжёлое" для процессора ибо пришлось бы учитывать все варианты включая "IM")
Главная проблема, что слева от большего числа не допускается повторения меньшего числа.
IIIVIIIIIIIII = III VI IIIIIIII = 17
IIIVIIIIIIIII = II IV IIIIIIIII = 15
IIIIVIIIIIIII = IIII VI II II II I = 17
IIIIVIIIIIIII = III IV IIIIIIII = 15
Ну можно наверное допустить что если слева есть меньшая цифра, то принимать во внимание только одну.
alexdrob, IIIIVIIIIIIII - 15, и никак по другому (ну если откинуть все правила кроме одного - "складываем все, не считая случая когда меньшая цифра стоит перед большей")
да и как тогда будет VIIIX ? :) а может это 18, а может и 13 тогда или вообще 2 :)
Как написано - Свалку из всего ввода привести к человеческому просуммировав.
То есть типа : IIIIIVIVIIII - это XX
или : IIIIIVIVIIIILXMCCCLMII - это MMCCCCXXXII
Добавляем ещё C хоть в начало: CIIIIIVIVIIIILXMCCCLMII и получаем MMDXXXII
Короче, как в задании :
Задание №1:
Дано число, записанное римскими цифрами, любым из способов:
IIIIIIIIIIIIIIII - это 16.
VIIIIIIIIIII - это 16.
VVIIIIII - это 16.
XIIIIII - это 16
VVVI - это 16.
XVI - и даже это 16.
(это одно и тоже число, все записи правильные) - то есть свалка в нормальный вид с суммой. ВСЕ. Читайте внимательно ЗАДАНИЯ
Вы не поняли что значит "способом". Имелась в виду не техническая реализация, а логическая. Например задача - "написать игру на шахматной доске с шахматными фигурами". Можно ее реализовать по правилам шахмат, а можно и придумать свои правила, т.к. не указано как могут ходить фигуры, кто первый начинает и т.д. В задании номер 1 такая-же неоднозначность. Задача - "привести введенное число к кратчайшему виду", но не сказано что ответ может содержать некорректную форму записи, по этому кждый может решать так как хочет и оба решения будут верными.