Viết chương trình liệt kê tăng dần theo thứ tự từ điển các hoán vị của các số từ 1..N Input:tệp văn bản hoanvi.inp chứa số n,1

Viết chương trình liệt kê tăng dần theo thứ tự từ điển các hoán vị của các số từ 1..N
Input:tệp văn bản hoanvi.inp chứa số n,1 { "@context": "https://schema.org", "@type": "QAPage", "mainEntity": { "@type": "Question", "name": " Viết chương trình liệt kê tăng dần theo thứ tự từ điển các hoán vị của các số từ 1..N Input:tệp văn bản hoanvi.inp chứa số n,1

0 bình luận về “Viết chương trình liệt kê tăng dần theo thứ tự từ điển các hoán vị của các số từ 1..N Input:tệp văn bản hoanvi.inp chứa số n,1<n<9 Output:tệp văn bản”

  1. program vct;
    var n:byte;
        a:array[1..9] of byte;
        duyet:array[1..9] of boolean;
        f:text;
    procedure xuat;
          var j:byte;
    begin
      for j:=1 to n do write(f,a[j]);writeln(f);
    end;
    procedure try(i:byte);
          var ii:byte;
    begin
      if i<=n then
        begin
          for ii:=1 to n do
            if duyet[ii]=true then
              begin
                 a[i]:=ii;
                 duyet[ii]:=false;
                 try(i+1);
                 duyet[ii]:=true;
              end;
        end
       else xuat;
    end;
    begin
       assign(f,’hoanvi.inp’);reset(f);
       readln(f,n);
       close(f);
       assign(f,’hoanvi.out’);rewrite(f);
       fillchar(duyet,sizeof(duyet),true);
       try(1);
       close(f);
    end.

    Bình luận
  2. uses crt;
    var f:text; n,m,i,j,t:longint; b,c:array[1..100000000]of longint;
    procedure print;
    var i,j,d:longint;
    begin
       d:=0;
       for i:=1 to n do 
          begin 
             j:=1;
             while (b[j]<>i)and(j<=n) do inc(j);
             if j=n+1 then d:=1;
          end;
       if d=0 then  
          begin 
             inc(m); 
             for i:=1 to n do 
                c[m]:=c[m]*10+b[i];
          end;
    end;
    function dequy(a:longint):longint;
    var i:longint;
    begin
       if a=n+1 then print else
             for i:=1 to n Do
                begin
                   b[a]:=i;
                   dequy(a+1);
                end;
    end;
    begin 
    clrscr;
       assign(f,’hoanvi.inp‘);reset(f);
          readln(f,n); 
       close(f);
       assign(f,’hoanvi.out‘);rewrite(f);
          dequy(1);
          writeln;
          for i:=1 to m do 
             for j:=1 to i-1 do 
                if c[i]<c[j] then 
                   begin
                      t:=c[i]; c[i]:=c[j]; c[j]:=t;
                   end;
          for i:=1 to m do writeln(f,c[i],’ ‘);
       close(f); 
    end.

    Bình luận

Viết một bình luận