2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 39
|
|
1 | |
Разность римских чисел без перевода в десятичную систему06.12.2019, 14:43. Показов 4682. Ответов 18
Метки нет (Все метки)
Добрый день! Мне в университете задали РГЗ на разность двух римских чисел. Казалось бы, это сделать легко, путём перевода каждого числа в десятичное, найти разность и записать обратно в римский вид. Однако вся сложность заключается в том, что пользоваться переводом в десятичное число нельзя. Дорогие друзья! Подскажите пожалуйста, в каком направлении копать? Как примерно это можно реализовать? Код я смогу написать сам, мне бы только идею
0
|
06.12.2019, 14:43 | |
Ответы с готовыми решениями:
18
Перевода вещественного числа из шестиричной в десятичную систему счисления Составить программу перевода заданного числа в десятичную систему счисления Сформировать новый массив путем перевода элементов начального массива в десятичную систему Сформировать новый массив путем перевода значений элементов исходного массива в десятичную систему счисления |
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
|
06.12.2019, 16:45 | 2 |
На ум приходит такое:
Сначала нужно научиться вычитать 1 из любого римского числа затем для 2 римских чисел A и B в цикле пока (B = B - 1) != 0 вычитать из A единицу
1
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 39
|
|
06.12.2019, 17:06 [ТС] | 3 |
Так-то идея хорошая. А если в цекле сделать так, что мы уменьшаем число A до тех пор, пока у нас A != B, счётчик и будет ответ. А потом этот ответ перевести в римское число
0
|
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
|
|
06.12.2019, 17:11 | 4 |
Да, еще и лучше даже
0
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 39
|
|
06.12.2019, 17:20 [ТС] | 5 |
Придумал ещё лучше. Сделать цикл, пока A != B, ответом будет являться счётчик. В цикле добавлять единичку к числу B. Спасибо большое за ответ, дома попробую реализовать
0
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
06.12.2019, 17:24 | 6 |
Там ещё сравнение нужно будет сделать, т.к. вычитать надо из большего или прибавлять к меньшему
0
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 39
|
|
06.12.2019, 17:27 [ТС] | 7 |
Если к числу B прибавлять, то я примерно знаю, как это сделать
0
|
14 / 11 / 3
Регистрация: 16.10.2019
Сообщений: 95
|
|
06.12.2019, 17:32 | 8 |
Когда же я буду иметь счастье созерцать решение?
0
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 39
|
|
06.12.2019, 17:36 [ТС] | 9 |
Сегодня - завтра постараюсь сделать
0
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 39
|
||||||
07.12.2019, 18:02 [ТС] | 10 | |||||
Что-то не получается у меня сделать. Работает только с супер-маленькими числами. Например VIII и V. Всё-таки сделать так, чтобы число VIIII (так как мы к B добавляем I) трансформировалось в IX - очень затруднительно
0
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
07.12.2019, 18:08 | 11 |
Ну да, просто так не сделаешь - там позиционная система.
А ты не переводи в десятичное, переводи в бинарное - int (компьютеры вроде с ними работают). По-моему, там по-другому никак.
0
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 39
|
|
07.12.2019, 18:15 [ТС] | 12 |
Тоже думал об этом. Хотя не уверен, что это разрешено) Но попробую. Спасибо
UPD По-моему, чтобы перевести римское число в бинарное - нужно всё равно перевести сначала в десятичное, разве нет?
0
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
07.12.2019, 18:19 | 13 |
Что-то я сомневаюсь, что древние римляне что-то суммировали в этой системе. Наверное тоже только время записывали и всё.
0
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 39
|
||||||
09.12.2019, 12:19 [ТС] | 14 | |||||
Попытался написать программу, которая будет считать XI - III, где III - число B. У нас в цикле получается следующее:
III (добавляем I, к циклу добавляется 1) - получается IIII (через условие меняется IIII на IV, добавляем I, к циклу добавляется 1) - получается IVI (через условие меняется IVI на V, добавляем I, к циклу добавляется 1) - получается VI и так далее, пока не дойдём до XI. Счётчик цикла - и есть ответ, который нужно перевести в римское число (что происходит без проблем). Идея по сути рабочая, но программа не работает, останавливается на первом цикле и пишет Segmentation fault. Не могу найти в чём проблема. Есть ли у вас идеи, как можно оптимизировать код? Здесь ещё нет многих циклов для чисел побольше, однако сейчас не об этом речь. Прошу помочь!
0
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 39
|
|
11.12.2019, 19:41 [ТС] | 15 |
Ребят! Вопрос всё ещё актуален! Прошу помощи
0
|
случайный прохожий
2934 / 1951 / 606
Регистрация: 20.07.2013
Сообщений: 5,160
|
|
12.12.2019, 00:20 | 16 |
Сообщение было отмечено voltara13 как решение
Решение
https://educontest.net/ru/3656... %B0%D1%85/
https://spravochnick.ru/inform... hisleniya/ https://nsportal.ru/ap/library... chisleniya Сложение и вычитание Сложить два римских числа не очень сложно: XIX + XXVI = XXXV Последовательность выполнения сложения такова: а) IX+VI: I после V "уничтожает" I перед X, поэтому в результате получаем XV; б) X+XX=XXX, если добавить еще один X, получим XXXX, или XL. Сложность вычитания римских чисел приблизительно такая же. Но чтобы из 500 вычесть 263, 500 надо сначала разложить на более мелкие составляющие и «сократить» повторяющиеся в уменьшаемом и вычитаемом знаки: D - CCLXIII = CCCCLXXXXVIIIII - CCLXIII = CCXXXVII
2
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 39
|
|
12.12.2019, 13:29 [ТС] | 17 |
Спасибо большое! Примерно понял как сделать
0
|
2 / 2 / 0
Регистрация: 26.01.2016
Сообщений: 39
|
||||||
22.12.2019, 09:13 [ТС] | 18 | |||||
Программу сделал. Если кому-то нужно, то вот:
1
|
0 / 0 / 0
Регистрация: 27.12.2020
Сообщений: 1
|
|
27.12.2020, 19:08 | 19 |
voltara13, привет, а у тебя не осталось блок-схем к программе?
0
|
27.12.2020, 19:08 | |
27.12.2020, 19:08 | |
Помогаю со студенческими работами здесь
19
Функции для перевода чисел из девятичной системы в десятичную Написать программу для перевода чисел из двоичной системы в десятичную Написать рекурсивный алгоритм перевода из двоичной системы счисления в десятичную ( из восьмеричной и шестнадцатеричной в десятичную) Перевод чисел из двоичной в десятичную систему Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |