рекурсия |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
рекурсия |
lopata |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: 0 |
Количество свечей, которые можно поставить(повесить) на Рождественскую елку зависит от высоты(h) елки.
Изучите следующие примеры освещения свечами: 1 рис. h = 1. Candles = 1; 2 рис. h = 2. Candles = 4; 3 рис. h = 3. Candles = 13; a)Укажите(дайте) рекурсивное определение и рекурсивный алгоритм для Candles(h). b) Реализуйте итеративный ввод с действием для Candles(h). Честно говоря, вообще не понимаю как это делать.. Объясните, пожалуйта, если кто понял, что нужно вообще делать в этом задании. Не понимаю как это можно делать с помощью рекурсии..да и вообще не понимаю как это делать. |
Tony |
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: 1 |
Ну если я правильно понимаю поставленную задачу, то при h = 4 ответ будет 40, и при этом соотношени Candles(h) = 3^(h-1) + 3^(h-2) неверно...
Но тогда верно другое соотношение, а именно : Candles(h) = 3 * Candles(h - 1) + 1; Candles(1) = 1. Программно это реализуется так : Код function Candles(h:longint):longint; begin if h = 1 then Candles := 1 else Candles := 3 * Candles(h - 1) + 1; end; При этом функция Candles вызывает сама себя до тех пор, пока h не станет равным 1. После этого рекурсия как бы возвращается назад, используя полученные значения... Вообще конечно это сложно объяснить . |
Текстовая версия | 3.05.2024 8:15 |