pascalabcnet/TestSamples/CompilationSamples/Permutations.pas

53 lines
706 B
ObjectPascal
Raw Normal View History

2015-05-14 22:35:07 +03:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> n
procedure swap(var a,b: integer);
var v: integer;
begin
v:=a;
a:=b;
b:=v
end;
procedure Solve(n: integer);
const Sz=100;
type IArr=array [1..Sz] of integer;
var A: IArr;
procedure PrintA;
var i: integer;
begin
for i:=1 to n do
write(a[i],' ');
writeln;
end;
procedure FillA;
var i: integer;
begin
for i:=1 to n do
A[i]:=i;
end;
procedure Solve0(t: integer);
var i: integer;
begin
for i:=t to n do
begin
swap(A[t],A[i]);
if t=n then
PrintA
else Solve0(t+1);
swap(A[t],A[i]);
end;
end;
begin // Solve
FillA;
Solve0(1);
end;
begin
cls;
Solve(4);
end.