Показать сообщение отдельно

  #103  
Старый 27.11.2007, 00:04
VERte][
Участник форума
Регистрация: 17.05.2007
Сообщений: 220
Провел на форуме:
3013539

Репутация: 441
По умолчанию

Тут было у меня заданьице в универе: на основе рекурсивной функции вывести все перестановки произвольных чисел, выкладываю, ибо алгоритм довольно интересный и не сразу допрёшь(на паскале):

Код:
program perestanovki(input, output);
const n=5;
type arr=array[1..n] of integer;
var x:arr; i:integer;

procedure trans(x:arr; k:integer);
var i,temp:integer;
  begin  
     if k=n then begin for i:=1 to n do write(x[i],' '); writeln; end
     else
       begin
         for i:=k to n do
         begin
         temp:=x[k];
         x[k]:=x[i];
         x[i]:=temp;
         trans(x,k+1);
         end;
       end;
  end;

begin
for i:=1 to n do read(x[i]);
trans(x,1);
readln;
readln
end.
 
Ответить с цитированием