1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| yar11 |
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
Лесенкой называется набор кубиков, в котором каждый более верхний слой содержит кубиков меньше, чем предыдущий.
Требуется написать программу, вычисляющую число лесенок, которое можно построить из N кубиков. Помогите с решением. Вроде бы слышал, что задача считается классической, но она встретилась на районной олимпиаде по программированию для школьников. Поэтому я ее поместил в данный раздел. |
![]() ![]() |
| Malice |
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Лесенкой называется набор кубиков, в котором каждый более верхний слой содержит кубиков меньше, чем предыдущий. Требуется написать программу, вычисляющую число лесенок, которое можно построить из N кубиков. Помогите с решением. У меня вот так получилось:
c- соответственно, количество лесенок Сообщение отредактировано: Malice - |
| tunyash |
Сообщение
#3
|
|
Гость |
У меня вот так получилось:
c- соответственно, количество лесенок решение, к сожалению, неправильное, скажем из шести кубиков можно построить не 3, а 4 лесенки 5+1, 4+2, 3+2+1, 6+0 правильное решение рекуррентное. n[i,j] = n[i][j-1]+n[i-j][j-1] - количество лесенок из i кубиков c основанием лестницы i и менее. Первые три столбика (нулевой, первый и второй) заполним единичками, затем нулевую строчку - нулями. а дальше сосчитаем остальное. PROFIT |
| Lapp |
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Эта тема давно в находилась в подвешенном состоянии и время от времени мозолила мне глаза. Таинственный гость tunyash сказал "А":
решение, к сожалению, неправильное, - но не сказал "Б".. И я, наконец, собрался и решил расставить точки над i type Прошу заметить: этот код в этом виде НЕ БУДЕТ работать под TurboPascal. Если кто-то все же хочет вкусить аромата старины - замените longint на integer (что, разумеется, уменьшит диапазон N). С longint диапазон N доходит примерно до 200. Использовать int64 тупо в лоб, к сожалению, нельзя, требуется небольшая переделка.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
yar11 Лесенка (олимпиадная задача) 2.12.2005 10:31
yar11 Спасибо за ответ.
Но не мог бы ты сказать
почему … 23.12.2005 12:02
Malice Где почитать не знаю, сам делал, а думалось пример… 23.12.2005 13:45
yar11 Положим из 10 кубиков можно построить
лесенки тип… 23.12.2005 14:26
Malice
5+4+3+2+1
Здесь больше 10 :) Поэтому (1+2+3+4) … 23.12.2005 16:05![]() ![]() |
|
Текстовая версия | 5.11.2025 21:53 |