Перестановки (3 уровень) |
Условие :Даны n чисел в произвольном порядке. Вывести на экран всевозможные их перестановки. Решение: (by Pavel [prog_mail@ukr.net]) type mn=set of 1..200; var m,d,n,i: integer; s: mn; a,b: array[1..200] of integer; procedure View; var i: integer; begin writeln; for i:=1 to n do write(b[a[i]],' '); end; procedure Per(s: mn; k: integer); var i: integer; begin for i:=1 to n do If i in s then begin a[k]:=i; per(s-[i],k+1); end; if s=[] then view; end; BEGIN writeln('Введите кол-во чисел'); readln(n); writeln('Введите числа'); for i:=1 to n do read(b[i]); writeln('Перестановки :'); per([1..n],1) END. |