Trở về đầu

foto1 foto2 foto3 foto4 foto5
Giảng viên
Nguyễn Tô Sơn - Thủ khoa Đại học Sư phạm Hà Nội
ĐT: 091.333.2869

HỌC TIN CÙNG THỦ KHOA

Thành công không phải đích đến, mà là cả một hành trình

Tìm kiếm

Mời các bạn Download code tại: Click here

Đề bài: Nhập vào một số nguyên dương n. Hãy liêt kê các hoán vị của các số từ 1 tới n.

const fi = 'HOANVI.INP';
      fo = 'HOANVI.OUT';
      MAXN = 20;
var f: text;
    n: integer;
    a: array [1..MAXN] of integer;
    b: array [1..MAXN] of boolean;
    dem: integer;


procedure Nhap;
begin
        assign(f, fi); reset(f);
        readln(f, n);
        close(f);

        fillchar(b, sizeof(b), true);
        dem:= 0;
end;

procedure InKQ;
var i: integer;
begin
        inc(dem);
        write(f, dem:3, ': ');
        for i:= 1 to n do
                write(f, a[i],' ');
        writeln(f);
end;

procedure Try2(i: integer); // dien gia tri cho vi tri thu i
var j: integer;
begin
        for j:= 1 to n do
        begin
                if b[j] = true then
                begin
                        a[i]:= j;
                        b[j]:= false;
                        if i = n then InKQ
                              else Try2(i+1);
                        b[j]:= true;
                end;
        end;
end;

BEGIN
        Nhap;
        assign(f, fo); rewrite(f);
        Try2(1);
        close(f);
END.

Giảng viên Nguyễn Tô Sơn, Thủ khoa Đại học Sư phạm Hà Nội. Điện thoại: 091.333.2869