|
0 / 0 / 0
Регистрация: 27.01.2020
Сообщений: 1
|
|
Замена римских букв на арабские цифры в строке27.01.2020, 21:56. Показов 10556. Ответов 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
|
|||||||||||
|
Злостный нарушитель
10242 / 5670 / 1260
Регистрация: 12.03.2015
Сообщений: 26,278
|
|||||||
| 31.01.2020, 08:30 | |||||||
|
Вот функция на pascal. Можно и по ней запилить:
0
|
|||||||
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,008
|
||||||
| 31.01.2020, 10:04 | ||||||
|
Перевести римские числа в арабские, и наоборот
0
|
||||||
|
Мозгоправ
|
|||||||
| 01.02.2020, 01:27 | |||||||
|
В итоге родился следующий код:
0
|
|||||||
| 01.02.2020, 01:27 | |
|
Помогаю со студенческими работами здесь
6
Перевод римских чисел в арабские и наоборот
Замена букв на цифры! Замена букв в строке на сочетание букв Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|