- 8
- 0
- 约小于1千字
- 约 3页
- 2020-01-19 发布于山东
- 举报
构造法;例:全排列n个不同对象共有n!种,按升序依次输出这n!种排列。例如,5个数字1,2,3,4,5,共有120种,按12345,12354,12435,12453,……54321;program li2_2_2;
var a:string;n,i,j:integer;t:char;
begin
assign(input,1.in);reset(input);
assign(output,1.out);rewrite(output);
readln(a);
writeln(a);
n:=length(a);
repeat
i:=n-1;
while (a[i]a[i+1]) and (i0) do dec(i);
if i=0 then break;
j:=n;
while a[j]a[i] do dec(j);
t:=a[j];a[j]:=a[i];a[i]:=t;
for j:=1 to (n-i) div 2 do
begin
t:=a[i+j];a[i+j]:=a[n+1-j];a[n+1-j]:=t;
end;
writeln(a);
until false;
end.
原创力文档

文档评论(0)