Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача на рекурсию

Автор: Vandrouny 15.03.2009 22:09

Нужно решить следующую задачу:
Дано n различных натуральных чисел (n=5). Напечатать все перестановки. (рекурсия)

Вот. Обязательно с рекурсией. Подскажите хотя бы принцип, а то чего-то вообще не врубаюсь, с какого конца к ней подойти...

Автор: klem4 16.03.2009 0:33

Воспользуйтесь поиском, задача решалась.

Автор: Vandrouny 16.03.2009 0:54

Цитата(klem4 @ 15.03.2009 19:33) *

Воспользуйтесь поиском, задача решалась.

Может, у меня уже мозги не соображают, я пробовал найти - не нашёл.
Киньте ссылкой, плиз.

Автор: klem4 16.03.2009 1:36

http://forum.pascal.net.ru/index.php?showtopic=3777&st=0&p=52823&#entry52823

Автор: Lapp 16.03.2009 7:57

Цитата(klem4 @ 15.03.2009 21:36) *
http://forum.pascal.net.ru/index.php?showtopic=3777&st=0&p=52823&#entry52823
Я бы не сказал, что это совсем то..
Хотя, может, совсем разжевывать и неправильно, но вот сама рекурсивная функция:
procedure Next(s: string);
var
i: word;
t: string;
b: boolean;
begin
b:=true;
for i:=1 to n do if not u[i] then begin
Str(a[i]:3,t);
u[i]:=true;
Next(s+t);
u[i]:=false;
b:=false
end;
if b then WriteLn(s)
end;
Автору темы остается ее вызвать, предварительно заполнив массивы.. smile.gif

Автор: Vandrouny 24.03.2009 0:21

Спасибо!
Ну а вообще нашёл ещё на другом сайте код.
В результате вроде работает.