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