首页 > 试题广场 >

(全排列)下面程序的功能是利用递归方法生成从1到n(n10

[填空题]
(全排列)下面程序的功能是利用递归方法生成从1到n(n<10)的n个数的全部可能的排列(不一定按升序输出)。例如,输入3,则应该输出(每行输出5个排列):
123 132 213 231 321
312
程序:
Program ex401;
var
   i,n,k:integer;
   a:array[1..10] of integer;
   count:longint; {变量count记录不同排列的个数,这里用于控制换行}
procedure perm(k:integer);
var
   j,p,t:integer;
begin 
    if    1    then
    begin
        inc(count);
        for p:=1 to k do
        write(a[p]:1);
        write(' ');
        if (    2    ) then writeln;
        exit;
    end;
    for j:=k to n do
    begin
        t:=a[k]; a[k]:=a[j]; a[j]:=t;
           3    
        t:=a[k];
           4   
    end
end;
begin
    writeln('Entry n:');
    read(n);
    count:=0;
    for i:=1 to n do a[i]:=i;
        5   
end.

这道题你会答吗?花几分钟告诉大家答案吧!