![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
![]()
Нужно записать сумму цифр: 999 999 999 999 + 111 000 000 000
и тут возникли вопросы: 1 - как записать большое число? (int64 или как его там, не пойдёт, потому что число может быть и с 300 знаками) Допустим, если их записывать через элементы массива, т.е. 1 число = 1 ячейка массива, то 2 - как сложить их, при этом учесть тот факт, что будут переводы (например, 9+1 = 10, в единицы 0, в десятки +1) Последний раз редактировалось Fanyuus; 15.05.2011 в 11:58. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 26.01.2010
Сообщений: 215
|
![]()
Могу лишь пнуть в нужном направлении (ну или как получится)
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
![]()
Swarog
думаю пойдёт, теперь расшифруйте, что это? :D я ещё не такой супер-пупер программист и поэтому, ничего не могу понять. у меня есть вариант как сделать длинное число через массивы, но(!) как сделать так, чтобы ТП прочитал это число и только потом разложил его на массивы. если первоначальное число использовать как строку, то как перевести из строки в число? допустим - 123456789123 - это строка, а[1]=3 a[2]=2 a[3] = 1 a[4]=9..... даже вот чтобы так сделать мне нужно от строки по 1 символу отсекать, переводить его в число и записывать в массив, отсекать с конца. так вто - как это сделать? *нужна программа, алгоритм |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 26.01.2010
Сообщений: 215
|
![]()
в приведенной ссылке модуль создайте текстовый файл запихните туда текст из сслке и схраните под именем UMathServices.pas затем добавьте этот модуль в проект
project -> add to project в фале в формой в секцию uses добаьте запись , UMathServices теперь можно использовать, переводить ни чего не надо модуль вроде работает прям со строками пример как сложить два числа: Код:
Могу лишь пнуть в нужном направлении (ну или как получится)
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 03.10.2010
Сообщений: 321
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 13.12.2007
Сообщений: 788
|
![]()
если не использовать отдельный модуль, то можете вполне сами написать - на деле все просто - заполняете массивы начиная от начала (то есть в обратном) порядке, затем просто циклом от начала проходитесь, складываете, и если число больше 10, то берете вычитаете из него 10, а к следующему элементу дополнительно добавляете единицу, не вижу ничего сложного)
так же и со строками - просто оперировать с кодами символа ord(a[i])-48 например)
благодарность - сюда (не забываем писать от кого)
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Swarog, +1
и вообще, поискать/почитать на тему "Длинная арифметика" p.s. "как сложить их, при этом учесть тот факт, что будут переводы " - помните, как в начальной школе учили складывать числа в столбик? Вот по такому алгоритму и поступать. Записать оба числа так, чтобы их правые части (младшие разряды) совпали (ну или просто начинать от правых разрядов - два индекса) и складывать. Причём складывать каждый раз очередные разряды + перенос с прошлого разряда. Перенос с прошлого разряда перед циклом положить равным нулю. Всё. Всё это пишется в коде чуть ли не быстрее, чем я тут словами размусоливаю.. ![]() Цитата:
Код:
Последний раз редактировалось Serge_Bliznykov; 15.05.2011 в 13:33. |
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 07.05.2011
Сообщений: 169
|
![]()
Zer0 да не нужно меня учить как столбиком считать, знаю я, меня интересовало как это с массивами сделать, чуть позже (после моего сообщения) я уже поняла что прибавить к [i+1]+1, где сравнивалась сумма [i], это было всё понятно, волновала потом строка и перевод из неё в число.
Swarog,Hemul,Serge_Bliznykov - спасибо большое!))) ладно, завтра всё проверю, и скажу чего и как |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Длинное деление в столбик | Utkin | Свободное общение | 15 | 30.11.2010 10:22 |
Длинное тире | ElenaA | Общие вопросы Delphi | 4 | 24.06.2010 09:10 |
Длинное целое | The riddle | Помощь студентам | 5 | 13.06.2009 15:45 |
Длинное целое | The riddle | Помощь студентам | 0 | 07.06.2009 11:06 |