![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 04.01.2011
Сообщений: 10
|
![]()
Здравствуйте. Мне была поставлена задача организовать деление очень длинного целого не отрицательного числа на короткое целое.
в идеале нужно было сделать через строки но у меня не вышло. после прочтения книжки Окулова о Длинной арифметике нарисовался вот такой код. Код:
Помогите пожалуйста разобраться.
Криворукий Самоучка
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Есть такой журнал ПРОграммист. В нем описана длинная арифметика, в том числе и деление чисел... Выпуски 12 и 13. Кроме того, там приложены исходники на Дельфи, которые обкатывались на данном форуме (мной). Поэтому их можно найти здесь (при желании и умении пользоваться поиском по данному форуму).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 04.01.2011
Сообщений: 10
|
![]()
спасибо за ссылку на журнал, исходники я тоже нашел. но там так все реализованно что мне не поверят что это я сам делал=) при всем желании.
в поисках информации нашел вот это сообщение Цитата:
Криворукий Самоучка
|
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Вам же не поверят
![]() На форуме и в журнале одни исходники (при условии если это их я выкладывал, вроде как еще кто-то этим занимался).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
FGInt: http://www.submanifold.be/triade/GInt/gint.html
BigInt: http://sourceforge.net/projects/bigint-dl/ Раньше ещё была NX здесь: http://www.ellipsa.eu/public/nx/nx.html , но её закрыли. И в DeHL кажется была реализация. P.S. Просмотрел, что надо самому. Отбой.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
Последний раз редактировалось GunSmoker; 31.05.2011 в 13:15. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 04.01.2011
Сообщений: 10
|
![]()
ну немного разобрался..пока вот так. ошибка в цикле while незнаю как правильно условие пока задать.(м.б пока остаток не станет меньше чем делитель?) и еще с остатком беда видимо. млин башка уже не варит
Код:
ход мыслей такой 1) узнать количество разрядов в делителе(допустим 2) 2) взять первые 2 разряда делимого(2) 3)проверить меньше ли первые 2 разряда делимого чем делитель 4) если меньше то переводим из строки в число и делим если нет то дописываем следующий разряд а потом уже делим. получаем деление и остаток 5)деление записывает в результат(потом будем дополнять следующими числами) 6)к остатку добавляем 1 разряд делимого и сравниваем больше ли это число чем делитель и так продолжаем пока не кончатся разряды делимого
Криворукий Самоучка
Последний раз редактировалось cr1me; 31.05.2011 в 14:02. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 04.01.2011
Сообщений: 10
|
![]()
все получилось. спасибо за ссылки на литературу. разобрался. выкладывать код не буду, как сказал товарищ уткин чтобы разобрались люди сами.
предпоследнего наброска и алгоритма мышления вполне достаточно. кому сильно прижмет, как мне, стучите в жабу поделюсь кодом un1qum@jabber.ru
Криворукий Самоучка
Последний раз редактировалось cr1me; 01.06.2011 в 08:50. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
4-ый пункт - если в делимом меньше разрядов, чем в делители, то насколько я помню в результат нужно нуль дописывать...
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 02.10.2012
Сообщений: 1
|
![]()
Правильный код
Код:
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Carburn, а чего Вы не дождались пару дней, до того момента когда пройдет ровно год с момента последнего поста?
Это называется некропостинг - отвечать на давно умершие и не нужные ТС темы. В общем не надо этим заниматься ![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Длинная арифметика : деление (числа в string'е на число 256) | Dima_Dima | Общие вопросы Delphi | 6 | 06.02.2011 20:39 |
длинная арифметика: деление | Dеlphi | Общие вопросы C/C++ | 0 | 19.01.2011 13:19 |
Длинная арифметика | Khelleos | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 20.12.2010 09:08 |
Длинная арифметика на C#(деление) | Mr_Dark | Общие вопросы .NET | 1 | 21.06.2009 21:57 |
Длинная арифметика: деление | Vadik(R) | Помощь студентам | 1 | 27.03.2009 12:08 |