|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 67
|
||||||
Длинные числа. Умножение отрицательных29.03.2015, 17:30. Показов 7873. Ответов 43
Метки нет (Все метки)
Здравствуйте, помогите пожалуйста как сделать, чтобы и отрицательные числа перемножались?
Здравствуйте. Помогите пожалуйста довести программу до ума. Задача: Калькулятор на умножение в 10 СС. Диапазон вводимых чисел [-2^256; 2^256]. Умножение от 2 до 4 чисел. Вывод в своей системе и в 18 СС. Как сделать проверку на вводимый диапазон чисел? И не понимаю как сделать, чтобы и с отрицательными числами программа работала.
0
|
||||||
| 29.03.2015, 17:30 | |
|
Ответы с готовыми решениями:
43
Длинные числа в c++ Длинные числа в С++ Длинные целые числа |
|
Модератор
|
|
| 30.03.2015, 20:01 | |
|
flo, а как задание звучит в оригинале (в варианте препода или откуда там задание)?
Добавлено через 45 секунд Там просто в коде каша какая-то. В неё и лезть-то как-то не хочется. Проще заново всё написать, мне кажется.
0
|
|
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 67
|
||
| 30.03.2015, 20:21 [ТС] | ||
|
Я программирование плохо понимаю
![]() Просто попала в бригаду, где люди не программировали, а я занималась этим на 1ом и 2ом курсе и то, только чтобы сделать задание, а не из интереса. Поэтому участь пала на меня)) Добавлено через 3 минуты
0
|
||
|
Модератор
|
||
| 30.03.2015, 20:27 | ||
|
flo, а именно через самописные функции и массивы всё это делать - чья идея? Почему не использовать готовые решения?
0
|
||
|
840 / 498 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
|
||||||
| 30.03.2015, 21:33 | ||||||
|
Вот, нашел исходник своей старой лабы по длинной арифметике.
Код, конечно, оставляет желать лучшего, ибо он плохой и нехороший. Много чего, не хватает в нем. Той же обработки ошибок и различных функций. Это даже будет небольшой обрубок, а не программа по длинным числам ![]()
0
|
||||||
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 67
|
|||||||
| 30.03.2015, 21:37 [ТС] | |||||||
![]()
.Осталось проверить на корректность вводимых чисел и чтобы они были в диапазоне от -2^256; +2^256
0
|
|||||||
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 67
|
||||||||||||||||
| 01.04.2015, 22:36 [ТС] | ||||||||||||||||
|
Всем спасибо!
Сделала по своему, по примитивному)) НО осталась одна проблемка на корректность ввода числа. Нужно чтобы программа не давала вводить буквы символы(кроме знака '-'). Я попыталась сделать, но программа пропускает, например, такое число 333gggg. Где ошибка? Вот функция проверки на ввод, чтобы вводились только числа
Добавлено через 4 минуты А можно еще как-нибудь вставить эту проверку в саму функцию ввода числа? а не в главную
0
|
||||||||||||||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
|
|||||||
| 01.04.2015, 22:39 | |||||||
и прямо из цикла выходим или false или true
0
|
|||||||
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 67
|
|
| 01.04.2015, 23:35 [ТС] | |
|
ValeryS,
Так тоже пропускает числа типа 5455jjjj, т.е когда после чисел идут буквы, он считывает как число. Добавлено через 6 минут Так тоже пропускает числа типа 5455jjjj, т.е когда после чисел идут буквы, он считывает как число. В общем, пропускает, где вообще есть число. Даже такое - gklgdksjg44485kgkg
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
|
|||||||
| 01.04.2015, 23:45 | |||||||
![]() у меня там ошибки при копировании получились, вот исправленная версия
смотри вызов функции
0
|
|||||||
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 67
|
|
| 02.04.2015, 01:07 [ТС] | |
|
ValeryS,
Все изначально было сделано, как у тебя ![]() А всё равно пропускает ошибки)
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
|
|||
| 02.04.2015, 06:40 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 67
|
|||||||||||||||||
| 02.04.2015, 11:56 [ТС] | |||||||||||||||||
![]() Не уже ли ни как не проверить ![]()
я попробовала так
Затем, если введу 3333333 - то снова ошибка. Я прочитала, что нужно использовать cin.sync(); и cin.clear() только не понимаю как
0
|
|||||||||||||||||
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 67
|
|
| 03.04.2015, 15:45 [ТС] | |
|
помогите, пожалуйста)
0
|
|
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 67
|
||||||
| 05.04.2015, 02:38 [ТС] | ||||||
|
Всё исправила, тема больше не актуальна)
Всем спасибо за ответы, очень помогли) Добавлено через 8 часов 19 минут Появилась новая проблема ![]() Перевод с 18 СС полученного результата. Нашла функию деления длинного числа на короткое. Но она невсегда корректно работает:
0
|
||||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|||
| 05.04.2015, 02:51 | |||
|
Ну как полегче? 1) Берешь библичную длинную арифметику и делаешь все с ее помощью. При таком варианте не придется особенно со всем париться. 2) Делаешь нормальную длинную арифметику самостоятельно. Тогда можно воспользоваться алгоритмами для длинной арифметики (в том числе и деление), описанные во втором томе (вроде) Кнута.
0
|
|||
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 67
|
|
| 05.04.2015, 12:56 [ТС] | |
|
Конечно, я же ничего не понимаю в программировании! Поэтому и выходит такая неразбериха.
Добавлено через 2 часа 45 минут Уже понятно, что этот случай мне не подходит. Так как 18 > base.
0
|
|
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 67
|
||||||
| 15.04.2015, 23:38 [ТС] | ||||||
|
Вот сотворила я сие чудо, может кто подсказать, как оптимизировать умножение отрицательных чисел?
0
|
||||||
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|||||
| 16.04.2015, 00:11 | |||||
|
Что можно сделать: Посмотреть какой подход используется в нормальных проектах и сделать по аналогии. Когда я когда-то писал свою длинную арифметику, то вдохновлялся вот этим. Хоть основная идея, заключающаяся в разделении знаковой и беззнаковой арифметики, там хорошо выражена, но некоторые операции там сделаны неэффективно, в частности умножение и деление. Их лучше всего реализовывать по Кнуту. В дальнейшем умножение можно улучшить методом Карацубы или вовсе при помощи Фурье. Добавлено через 2 минуты Число - это набор "цифр" и знак числа. Перемножаешь в начале "цифры", после этого определяешь знак произведения. Добавлено через 1 минуту Добавлено через 1 минуту то перевод в произвольную СС можно осущяствлять прям как в школе учили. Добавлено через 3 минуты Весь прикол в том, что хоть человеку 10СС понятнее, но компьютеру роднее 2СС. Или даже если быть точнее, то СС по основанию 2^32 для архитектуры x86 и 2^64 для архитектуры x64. Так что было бы логичным длинную арифметику делать именно для таких СС, а для вывода чисел на экран пользоваться переводом из одной СС в другую.
0
|
|||||
|
0 / 0 / 0
Регистрация: 17.12.2011
Сообщений: 67
|
|||
| 16.04.2015, 00:16 [ТС] | |||
|
Мне подсказали идею, я реализовала, но в главной функции хотелось бы избежать таких громоздких проверок( Еще на сие творение нужно тесты реализовать, это вообще беда, смутно вериться, что мой код вообще можно затестить
0
|
|||
| 16.04.2015, 00:16 | |
|
Как сравнить длинные числа через list? Реализовать длинные целые числа в виде класс Определить наибольший общий делитель двух многоразрядных чисел (длинные числа)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание:
как одно здание порождает конфликты требований,
которые никто не планировал
Материалы для обсуждения с МГСУ · 2026
Рисунки внутри приложенного ворд файла.
Что за. . .
|
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования?
Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная.
Где разрыв
. . .
|
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно»
Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
|
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую:
Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
|
|
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий?
Да, такие данные есть, и они хорошо описаны и в российской,. . .
|
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу:
https:/ / github. com/ altbodhi/ ReConMan
По итогу пришел к мысли, что DU не дружат с существующими технологиями.
От сериализации до отображения в реляционную. . .
|
Администрация Хабра удаляет новые энергоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерированы
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
|
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
|