Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2011, 10:42   #1
NiceEnd
Новичок
Джуниор
 
Регистрация: 15.10.2011
Сообщений: 1
Лампочка Олимпиадная задача №11 Зайчик

Здравствуйте, прошу помочь решить задачу:

"В нашем зоопарке появился заяц. Его поместили в клетку, и чтобы ему не было скучно, директор зоопарка распорядился поставить в его клетку лесенку. Теперь наш зайчик может прыгать по лесенке вверх, перепрыгивая через ступеньки. Лесница имеет определённое количество ступенек N. Заяц может одним прыжком преодолеть не более K ступенек. Для разнообразия зайчик пытается каждый раз найти новый путь к вершине лестницы. Любопытно, сколько различных способов есть у зайца добраться до вершины лестницы при заданных значениях N и K. Помогите написать программу, которая поможет вычислить это количество. Например, если K=3 и N=4, то существует следующие маршруты: 1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2, 1+3, 3+1. Т.е. при данных значениях у зайца всего 7 различных маршрутов добраться до вершины."

Входные данные: Ввести с клавиатуры два натуральных числа K и N (1<=K<=N<=300). K - максимальное количество ступенек, которое может преодолеть заяц одним прыжком, N - общее число ступенек.

Выходные данные: Нужно вывести S - количество возможных вариантов различных маршрутов зайца.

Примеры:
K=1 N=3 S=1
K=2 N=7 S=21
K=3 N=10 S=274

Сама задача мне ясна, но не могу разбить N на сумму всех возможных натуральных чисел. Извиняюсь, если данная задача уже есть на форуме.
NiceEnd вне форума Ответить с цитированием
Старый 16.10.2011, 02:14   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

угу. была. и даже алгоритм решения предложен (на основе т.н. "динамического программирования")

см. тут - Задача на динамическое программирование)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новая олимпиадная задача) Alexey_kor Помощь студентам 10 30.01.2011 23:57
Олимпиадная задача Alexey_kor Помощь студентам 7 30.01.2011 02:22
Олимпиадная задача. _-Re@l-_ Паскаль, Turbo Pascal, PascalABC.NET 1 09.12.2010 20:53
Олимпиадная задача Carbon Общие вопросы C/C++ 2 23.05.2007 22:07