Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на рекурсию
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Vandrouny
Нужно решить следующую задачу:
Дано n различных натуральных чисел (n=5). Напечатать все перестановки. (рекурсия)

Вот. Обязательно с рекурсией. Подскажите хотя бы принцип, а то чего-то вообще не врубаюсь, с какого конца к ней подойти...
klem4
Воспользуйтесь поиском, задача решалась.
Vandrouny
Цитата(klem4 @ 15.03.2009 19:33) *

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

Может, у меня уже мозги не соображают, я пробовал найти - не нашёл.
Киньте ссылкой, плиз.
klem4
Комбинаторика
Lapp
Цитата(klem4 @ 15.03.2009 21:36) *
Я бы не сказал, что это совсем то..
Хотя, может, совсем разжевывать и неправильно, но вот сама рекурсивная функция:
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
Спасибо!
Ну а вообще нашёл ещё на другом сайте код.
В результате вроде работает.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.