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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2011, 18:19   #1
Leet
Пользователь
 
Регистрация: 21.04.2011
Сообщений: 13
По умолчанию задача на рекурсию

дано:1<x,y,z<100 1<w<1000;
надо найти комбинации x,y,z(как вместе так же и отдельно) чтобы сумма была w
пример дано: 10,25,15,40;
комбинации:
25+15=40
4*10=40
2*15+10=40
P.s рекурсию ещё понимаю плохо,нужен опыт....
Код:
procedure rek(x1,w,l,x,y,z:integer; var k:integer);
 begin
 l:=l+x1;
  if l>w then exit;
   if l=w then k:=k+1;
 rek(z,w,l,x,y,z,k);
 rek(y,w,l,x,y,z,k);
 rek(x,w,l,x,y,z,k);
end;
var x,y,z,w,k,l,l1,l2:integer;
 begin
  assign(input,'input.txt');
  reset (input);
  assign(output,'output.txt');
  rewrite (output);
  read (x,y,z,w);
  l:=0;
  k:=0;
  rek(0,w,l,x,y,z,k);
  write (k);
 end.
Leet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на рекурсию(( kinza Помощь студентам 6 08.06.2009 09:51
Задача на рекурсию. KoHgpaT Паскаль, Turbo Pascal, PascalABC.NET 4 22.12.2006 20:49