Длинная арифметика |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Длинная арифметика |
Reflex |
Сообщение
#1
|
Гость |
Не могли бы ли вы мне помочь (факю читал не то что нужно). Мне нужно : реализация длинной арифметики на массиве цифр этого числа, нужно превеод интеджера в длинную арифметику, остаток от деления и вывод этого числа.
например Inttolong(a:integer):integer; modlong(num1,num2:long):long; write(long); Спасибо большое, если поможите. P.S. Пишу не своего компьютера |
volvo |
Сообщение
#2
|
Гость |
Ну, раз то, что ты читал - не то, что нужно, то Google - твой помощник... Ищи...
|
Гость |
Сообщение
#3
|
Гость |
искал...
но не нашел, а реализовать не получается |
Гость |
Сообщение
#4
|
Гость |
помогите, в четверг сдавать
|
Michael_Rybak |
Сообщение
#5
|
Michael_Rybak Группа: Пользователи Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
Вот, пока не перешел на с++, пользовал такую свою заготовку для олимпиад.
На изящность, а тем более, на оптимальность код не претендует. Тут есть InToTNum, +, -, *, /, PrintLong Остаток от деления вырази как a-(a div b)*b Код (Показать/Скрыть)
Пример использования: Program Long; P.S. На алголисте есть, но на сях. |
Гость |
Сообщение
#6
|
Гость |
Спасибо помогли
|
Гость |
Сообщение
#7
|
Гость |
я понимаю, что выгляжу полным нубом, но подскажите как мне найти НОК (наименьшее общее кратное) двух длинных чисел.
|
volvo |
Сообщение
#8
|
Гость |
Точно так же, как и для обычных (по той же формуле, только используя процедуры/функции для работы с длинными числами)...
Как для обычных чисел это делается, знаешь? |
Гость |
Сообщение
#9
|
Гость |
Цитата Как для обычных чисел это делается, знаешь? нет |
Гость |
Сообщение
#10
|
Гость |
а почему поиск на НОК не сработал?
|
Reflex |
Сообщение
#11
|
Пионер Группа: Пользователи Сообщений: 118 Пол: Женский Репутация: 0 |
Я зарегестрировалась (извините за флуд)
Надеюсь, что вы не среагруете на мой пол так же, как и на некоторх других форумах -------------------- Нам не дано предугадать как наше слово отзовется...
|
Reflex |
Сообщение
#12
|
Пионер Группа: Пользователи Сообщений: 118 Пол: Женский Репутация: 0 |
Volvo...
А Вы не могли бы мне подсказать как находить НОК для обычных чисел? -------------------- Нам не дано предугадать как наше слово отзовется...
|
Michael_Rybak |
Сообщение
#13
|
Michael_Rybak Группа: Пользователи Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
|
Reflex |
Сообщение
#14
|
Пионер Группа: Пользователи Сообщений: 118 Пол: Женский Репутация: 0 |
извините, но я изучаю паскаль всего месяц и никак не могу понять как мне это сделать ( а завтра будет плохо если не принесу) вот то что дал Michael_Rybak мне подходит, я там все знаю, а вот в факю там много что непонятно и реализовать нахождение НОКа не получается
Помогите умоляю. -------------------- Нам не дано предугадать как наше слово отзовется...
|
Reflex |
Сообщение
#15
|
Пионер Группа: Пользователи Сообщений: 118 Пол: Женский Репутация: 0 |
:'( Неужели Volvo узнав что я девушка, передумал мне помочь :'( Почему люди на большинстве форумов отказываються помогать девушкам :'(
-------------------- Нам не дано предугадать как наше слово отзовется...
|
volvo |
Сообщение
#16
|
Гость |
Reflex, я еще не успел просто
Смотри... Вот так вычисляется НОК (по-английски LCM: Least Common Multiplier) для обычных чисел типа Integer (для проверки - запусти эту программу и посмотри, что она выдает): { GCD - это Greatest Common Divider = НОД } Совершенно аналогично вычислим его для длинных чисел, заменив все операции на процедуры: uses longmath; Цитата Неужели Volvo узнав что я девушка, передумал мне помочь С чего ты взяла? Не было этого никогда, чтоб я из-за пола человека отказывался ему помогать... |
Reflex |
Сообщение
#17
|
Пионер Группа: Пользователи Сообщений: 118 Пол: Женский Репутация: 0 |
Спасибо, сейчас попробую
Просто когда я изучала HTML на одном форуме один парень объяснял, помогал мне, а потом я написала глагол в прошедшем времени(случайно так получилось что до этого были безродные ) он спросил: "Так ты девушка?" ну я скрывать и не собиралась , я ему честно ответила, а он меня тогда послал -------------------- Нам не дано предугадать как наше слово отзовется...
|
Reflex |
Сообщение
#18
|
Пионер Группа: Пользователи Сообщений: 118 Пол: Женский Репутация: 0 |
сдала, но преподаватель сказал юниты - хорошо, но лучше все засунуть в один файл как это сделать вроде удталяю превую часть оне начинает ругаться
-------------------- Нам не дано предугадать как наше слово отзовется...
|
Michael_Rybak |
Сообщение
#19
|
Michael_Rybak Группа: Пользователи Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
Возьми модуль, удали в нем строки "Unit LongMath;", "Interface" и "Implementation", а после каждого объявления процедуры/функции, находившегося *до* слова Implementation, допиши после точки с запятой: "forward;". Например:
Procedure Add(A,B:TNum;Var C:TNum); {Сложение} forward; Это называется "предварительное объявление", т.е. ты говоришь компилятору, что такая функция с такими параметрами есть, а как она работает - будет сказано ниже. Таким приемом можно реализовать, например, вложенную рекурсию - когда А вызывает В, а В вызывает А. А код программы вставь непосредственно перед "end.": ... |
Текстовая версия | 21.12.2024 23:44 |