Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Pascal
Перезагрузить страницу Помогите решить задачу
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
dim2sik dim2sik вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.10.2009
По умолчанию 24.10.2009, 20:16

Маленький кенгуру Кенг может прыгать на 1,2 или 3 метра. Определить, сколькими способами кенгуру может преодалеть дистанцию в N метров.

идея в том чтоб к расстоянию от старта (s) постепенно добавлялось число до того как s станет больше или равно N. Вот только как подсчитать количество способов и заставить каждый раз прыгать по разному ну и конечно записать все это на Паскале?
Ответить с цитированием
  (#2 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,269
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 25.10.2009, 02:51

Если N > 3, то первый прыжок будет на 1, 2 или 3 метра. После этого остается преодолеть N-1, N-2, N-3 метра соответственно. Отсюда вывод: f(N) = f(N-1) + f(N-2) + f(N-3). Так что "тупо в лоб" считать не обязательно.

Из способов прямого подсчета мне больше всего нравится "извращенная" форма рекурсии:
Код:
var
  counter: integer;

procedure test(N: integer);
begin
  if N = 0 then count := count+1
  else if N > 0 then
  begin
    test(N-1);
    test(N-2);
    test(N-3)
  end
end
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу!!! Leha148 Вопросы начинающих программистов 4 19.10.2011 19:10
помогите решить задачу) migraine Вопросы начинающих программистов 0 17.10.2011 23:00
Помогите решить задачу!!!! Sasha_16 Prolog 0 27.05.2011 19:12
Помогите решить задачу Алексей 7 Pascal 1 24.05.2011 03:24
помогите решить задачу Эмон Prolog 5 17.05.2011 23:57
Помогите решить задачу Dimon278 Pascal 2 19.10.2009 11:38
Помогите решить задачу. kraykovkina Prolog 10 24.09.2009 14:53
Помогите решить задачу... NEON3535 Pascal 1 20.09.2009 14:57
SOS помогите решить задачу TDG Pascal 1 19.09.2009 15:27
Помогите решить задачу..... Juced Задания за деньги 7 04.02.2009 13:23
Помогите решить задачу Kurdt Pascal 3 19.11.2006 22:19
Помогите решить задачу на С++ <SpEctAtOr> Вопросы начинающих программистов 0 09.03.2004 22:10



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов