задача с геометрической прогрессией |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
задача с геометрической прогрессией |
Bankir |
28.05.2005 17:37
Сообщение
#1
|
Гость |
Помогите плз решить такую задачу в Паскале через проседуры
Условие: По одной легенде шах предложил мудрецу любой подарок какой тот захочет. Мудрец сказал чтобы на первую кетку шахматной доски положили одно зерно, на 2 - 2 зерна, на 3 - 4 зерна, на 4 - 16 зёрен и.т.д. ( геометрическая прогрессия) Составить программу, с помощью которой модно вычислить на какой клетке суммарное кол-во зёрен превысит N шт. ( на шахматной доске 64 клетки) Заранее спасибо. |
volvo |
28.05.2005 17:48
Сообщение
#2
|
Гость |
В чем проблема? На чем застопорились?
Не знаем, как оформить геометрическую прогрессию? |
klem4 |
29.05.2005 9:25
Сообщение
#3
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
проблема в том ,что cкоро члены ряда перестанут умещаться в
LongInt;) Bankir, тебе Сюда Сообщение отредактировано: klem4 - 29.05.2005 9:27 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
29.05.2005 10:31
Сообщение
#4
|
Гость |
Цитата(klem4 @ 29.05.05 9:25) проблема в том ,что cкоро члены ряда перестанут умещаться в LongInt ;) А Comp на что? С его помощью можно попробовать обойтись без длинной арифметики... |
klem4 |
29.05.2005 10:50
Сообщение
#5
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Можт я чего-то не понимаю, но
хмм.. 8-й член = 4294967296*4294967269, так что я даже и не знаю, как тут Comp'ом обойтись сплошные error'ы ;) Сообщение отредактировано: klem4 - 29.05.2005 10:51 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
29.05.2005 11:15
Сообщение
#6
|
Гость |
Цитата(Bankir @ 28.05.05 17:37) По одной легенде шах предложил мудрецу любой подарок какой тот захочет. Мудрец сказал чтобы на первую кетку шахматной доски положили одно зерно, на 2 - 2 зерна, на 3 - 4 зерна, на 4 - 16 зёрен и.т.д. ( геометрическая прогрессия) Давай уточним условие: если у тебя прогрессия геометрическая, то на 2-ю клетку должны были положить в 2 раза больше чем на первую, на 3-ю - в 2 раза больше чем на вторую, и т. д. Из чего: 1 - 1 2 - 2 (1 * 2) 3 - 4 (2 * 2) 4 - 8 (4 * 2) У тебя 16... Откуда? Или это гипергеометрическая прогрессия? Уточни... |
Bankir |
29.05.2005 11:58
Сообщение
#7
|
Гость |
Да... с 16-ю я ошибся
А застопорился я на том что не могу понять как записать формулу геометрической прогресии - какие переменные куда подставлять и.т.д. и как оформить цыкл |
volvo |
29.05.2005 12:01
Сообщение
#8
|
Гость |
Вот тебе пример:
{$n+} Это будет работать почти всегда... |
Bankir |
29.05.2005 18:00
Сообщение
#9
|
Гость |
С типом переменных comp ни чего не работало
показывалась ошибка на строчке "readln(n);" - error 116: Must be in 8087 mode to compile this. Но с переменой типа на Integer всё заработало. Спосиба большое. P.S. а че за переменная comp в школе нам не рассказывали про неё? |
klem4 |
29.05.2005 18:01
Сообщение
#10
|
Perl. Just code it! Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
хех, поставь первой строкой в рограмме
{$n+} -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
29.05.2005 18:05
Сообщение
#11
|
Гость |
Так в том-то и дело, что с Integer ты можешь работать только до 16-ой клетки, а сумма - вообще до 15-ой, так как размер Integer - 16 бит. Если же брать Comp (длинное "целое"), то его размер - 8 байт (64 бита), следовательно ты сможешь работать до 64 клетки...
P.S. Программу подправил... |
Текстовая версия | 22.06.2024 4:18 |