0 / 0 / 3
Регистрация: 11.12.2016
Сообщений: 137
|
||||||
1 | ||||||
В строке записано десятичное число. Записать данное число римскими цифрами26.09.2019, 14:12. Показов 6601. Ответов 7
Метки нет (Все метки)
подвох задачи в том что -> Делать задачи двумя способами - один: "в лоб", без стандартных встроенных функций по строкам; второй - как умные программисты с ними
я делал вот так: Кликните здесь для просмотра всего текста
вопрос а как бы сделал умный программист ?
0
|
26.09.2019, 14:12 | |
Ответы с готовыми решениями:
7
Вывести данное число, записанное римскими цифрами Записать данное число (от 1 до 3999) римскими цифрами Записать данное целое число из диапазона от 1 до 1999 римскими цифрами Пусть число записано римскими цифрами, выведите его запись арабскими цифрами Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами |
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
|
||||||
26.09.2019, 14:53 | 2 | |||||
1
|
Автоматизируй это!
|
||||||
26.09.2019, 16:34 | 4 | |||||
Сообщение было отмечено Руслан997 как решение
Решение
Руслан997, как минимум нужно без мата в комментах. Вот тебе вариант, на миллионе обращений к выполнению всех ассертов почти в 2 раза быстрее твоего варианта, 1 цикл.
1
|
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
|
|
26.09.2019, 16:49 | 5 |
DmFat, я не претендую на "лучший код", просто подбросил вариант
0
|
0 / 0 / 3
Регистрация: 11.12.2016
Сообщений: 137
|
|
26.09.2019, 18:12 [ТС] | 6 |
0
|
Автоматизируй это!
|
|
26.09.2019, 18:28 | 7 |
Руслан997, а это шаблон вычислений, все римские числа формируются по одному шаблону, можно его было и более кратко и обще наверное сделать, но я подумал, что для данного примера пойдет. d - минимальная цифра, m - средняя цифра u- максимальная цифра.Данные разряды лежат в RANKS
Подставляя в такой шаблон числа из любого разряда мы можем получить нужное число. пример, число 22 1) начинаем слева и берем самый большой разряд, это 2 (20) 2 ) для 2 разряда у нас ['X', 'L', 'C'] 3) теперь смотрим как получить 2, беря из шаблона второй элемент то есть 'dd' 4) получаем что для формирования числа 2 во втором разряде нам надо поставить рядом два минимальных числа этого разряда то есть XX (минимальное значение мы берем из пункта 2) 5) теперь идем дальше к числу 2 (у нас ведь 22), оно в 1 разряде, его набор ['I', 'V', 'X'] 6) из пункта 3 мы уже знаем что для получения числа 2 ('dd') нам надо два минимума для этого разряда то есть II получаем XXII
1
|
0 / 0 / 3
Регистрация: 11.12.2016
Сообщений: 137
|
|
26.09.2019, 18:35 [ТС] | 8 |
Welemir1, спасибо, очень интересный способ
0
|
26.09.2019, 18:35 | |
26.09.2019, 18:35 | |
Помогаю со студенческими работами здесь
8
Вводится число от 1 до 10. Вывести данное число, записанное римскими цифрами (I, II, III, IV, V, VI, …., X) и словами Пользователь вводит с клавиатуры натуральное число не большее 999, программа должна вывести на экран данное число, записанное римскими цифрами Записать число римскими цифрами Записать число римскими цифрами Записать число n римскими цифрами (n<3999) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |