![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Witaliy |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 43 Пол: Мужской Реальное имя: Witaliy Репутация: ![]() ![]() ![]() |
Добрый день всем!
Я учюсь решать задачи, но никак не могу найти подходящей справки по длинной арифметике. Пожалуйста, дайте полный пример кода на Паскале для решения такой задачи: За 1 рубль можна увеличить рост человека в К раз. Сколько нужно потратить денег для того, что-бы достич росту М (не обезательно ровно М, можно и больше, НО не меньше). Текущий рост - N Например (1 <= N, M, K <= 1000000000 (10^9) ) К=3 М=200 N = 8 Решыть это можно так: умножать n на К пока n < m тоисть while n < m do n := n*k; Но мне нужно организировать при 1 <= N, M, K <= 1000000000 (10^9) Буду благодарен за любую помощь. Спасибо! |
Ozzя |
![]()
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
При ограничениях
Цитата (1 <= N, M, K <= 1000000000 (10^9) ) длинная арифметика ни к чему. LongInt перекрывает этот интервал как минимум в 2 раза. |
Witaliy |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 43 Пол: Мужской Реальное имя: Witaliy Репутация: ![]() ![]() ![]() |
Да, ето я видел, спасибо.
Понимаете, мне етот алгоритм не понятный какой-то... Нраиться мне такой: const NMax = 2000; Для ввода будет так: procedure translate(s : string; var a :dlChislo; ok : boolean); Тегами пользуйся для оформления исходников... Такой алгоритм мне кажеться понятнее, чем тот что вы дали Тут розряды записани наоборот, тоисть в масиве сначала йдуть десятки, потом сотни и т.д. например число 125 записано как 521 Мне бы организировать и другие операции, например деление, сравнение... Буду благодарен. Добавлено через 2 мин. Цитата длинная арифметика ни к чему. LongInt перекрывает этот интервал как минимум в 2 раза. Ладно, извините, ошибся, припустим что ограничение 10^30 Сообщение отредактировано: volvo - 14.02.2009 12:53 |
Witaliy |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 43 Пол: Мужской Реальное имя: Witaliy Репутация: ![]() ![]() ![]() |
Мне бы конкретный пример робочей программы для обчисление 2^N при N <=1000, ш=щитать должно до 1 сек.
Спасибо. |
![]() ![]() |
![]() |
Текстовая версия | 23.06.2025 5:01 |