|
0 / 0 / 0
Регистрация: 27.01.2020
Сообщений: 1
|
|
Замена римских букв на арабские цифры в строке27.01.2020, 21:56. Показов 10652. Ответов 5
Напишите программу, которая заменяет в переданной её символьной строке все записанные в римской системе счисления, на те же числа, записанные арабскими цифрами.
Входные данные Входная строка содержит текст, содержащий (возможно) запись чисел в римской системе счисления. Выходные данные Нужно заменить во всей строке числа, записанные в римской системе счисления, на те же числа, записанные арабскими цифрами. Примеры входные данные: In MMXIV Vasya graduated from school. выходные данные: In 2014 Vasya graduated from school.
0
|
|
| 27.01.2020, 21:56 | |
|
Ответы с готовыми решениями:
5
Перевод римских чисел в арабские Из римских чисел в арабские в файле Перевод римских цифр в арабские |
|
Мозгоправ
|
|||||||||||
| 31.01.2020, 00:53 | |||||||||||
|
Verevkin, там, куда вы послали ТС читать, решение сильно с гнильцой. Что бы далеко не ходить, делаю копипасту сюда обоих вариантов:
Вариант 1
if (integer_of(s[i]) <= integer_of(s[i])), условие будет всегда истинным. Если же, подглядывая в вариант 2, докорректировать до if (integer_of(s[i + 1]) <= integer_of(s[i])), то UB - см. ниже вариант 2.В варианте 2 выход за границу строки (UB) при анализе последнего символа: s[i + 1]. Код работает только потому, что в конкретной реализации std::string обращение элементу строки s[s.length()] возвращает концевой '\0', а не, допустим, вызывает исключение std::out_of_range.Далее, цитирую: best way to store the table to convert roman numerals to their corresponding integer values is by using a hash map. Ок, не вопрос. Но если этот map - просто справочная таблица, то надо добавить квалификаторы static const. Но, как говорится, фигвам - это жилище такое у индейцев. Сия таблица активно изменяется при вызовах std::map::operator[](). В мапу в качестве ключей добавляются все буквы (без дублирования), имеющиеся в строке (кроме тех, которые указаны при инициализации), включая символ '\0', со значением значения 0. Опять-таки спасает ситуацию то, что std::map добавляет ключ со значением по умолчанию 0.Другими нежелательными эффектами является выделение памяти для хранения совершенно ненужных пар ключ-значение и некоторое увеличение времени поиска ключей. Т.е. надо было использовать метод std::map::find().Наконец, hash map, см. цитату выше, это std::unordered_map, а std::map - это бинарное дерево.Ну и уж совсем напоследок, параметр в romanToInt() лучше передавать как константную ссылку. Это, извините, сейчас знают дети в старшей группе детсада.Добавлено через 18 минут SSDsssdd, кроме того, эти "решения" работают со всей строкой. Т.е. если функции romanToInt() напрямую скормить строку "In MMXIV Vasya graduated from school.", то функция вернёт число 2020.Следовательно, для решения вашей задачи необходимо входную строку разбивать на части, каждую часть проверять, что она является числом, записанным римскими цифрами, а потом уже скармливать функции. Кстати, алгоритм, реализованный в romanToInt(), трактует римскую запись числа несколько шире, чем это принято. Например, IIIIIIII это 8, и IIIIIV тоже 8.
0
|
|||||||||||
|
Злостный нарушитель
10355 / 5770 / 1274
Регистрация: 12.03.2015
Сообщений: 26,667
|
|||||||
| 31.01.2020, 08:30 | |||||||
|
Вот функция на pascal. Можно и по ней запилить:
0
|
|||||||
|
place status here
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,022
|
||||||
| 31.01.2020, 10:04 | ||||||
|
Перевести римские числа в арабские, и наоборот
0
|
||||||
|
Мозгоправ
|
|||||||
| 01.02.2020, 01:27 | |||||||
|
В итоге родился следующий код:
0
|
|||||||
| 01.02.2020, 01:27 | |
|
Помогаю со студенческими работами здесь
6
Перевод римских чисел в арабские и наоборот
Замена букв на цифры! Замена букв в строке на сочетание букв Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|