pascalabcnet/InstallerSamples/Algorithms/Recursion/Permutations.pas

19 lines
438 B
ObjectPascal
Raw Permalink Normal View History

// Все перестановки
2015-05-14 22:35:07 +03:00
const n = 4;
procedure Perm(a: array of integer; m: integer);
2015-05-14 22:35:07 +03:00
begin
if m=1 then
a.Println;
for var i:=0 to m-1 do
begin
Swap(a[i],a[m-1]); // ставим каждый на место последнего
Perm(a,m-1);
2015-05-14 22:35:07 +03:00
Swap(a[i],a[m-1]);
end;
end;
begin
var a := Range(1,n).ToArray; // заполнение массива a числами от 1 до n
Perm(a,n);
2015-05-14 22:35:07 +03:00
end.