Viết chương trình in ra màn hình tất cả các hoán vị của n số nguyên dương đầu tiên . Số nguyên dương n nhập từ bàn phím
0 bình luận về “Viết chương trình in ra màn hình tất cả các hoán vị của n số nguyên dương đầu tiên . Số nguyên dương n nhập từ bàn phím”
uses crt; const maxn=10; var a: array[1..maxn] of integer; n,m: integer; sn: longint; procedure init; var i: integer; begin write(‘Nhap so N=’);readln(n); for i:=1 to n do a[i]:=i; end; procedure swap( var x,y: integer); var z: integer; begin
z:=x; x:=y; y:=z; end; procedure print; var i: integer; begin sn:=sn+1; for i:=1 to n do write(a[i]); writeln; end; procedure hv(k: integer); var j: integer; begin if k=1 then print else for j:=k downto 1 do begin swap(a[k],a[j]); hv(k-1); swap(a[k],a[j]); end; end; BEGIN clrscr; sn:=0; init; hv(n); if sn<>0 then writeln(‘Co tat ca’,sn,’ hoan vi cua ‘,n,’ so’) else writeln(‘Vo nghiem’); readln;
uses crt;
const maxn=10;
var a: array[1..maxn] of integer;
n,m: integer;
sn: longint;
procedure init;
var i: integer;
begin
write(‘Nhap so N=’);readln(n);
for i:=1 to n do a[i]:=i;
end;
procedure swap( var x,y: integer);
var z: integer;
begin
z:=x; x:=y; y:=z;
end;
procedure print;
var i: integer;
begin
sn:=sn+1;
for i:=1 to n do write(a[i]);
writeln;
end;
procedure hv(k: integer);
var j: integer;
begin
if k=1 then print
else for j:=k downto 1 do
begin
swap(a[k],a[j]);
hv(k-1);
swap(a[k],a[j]);
end;
end;
BEGIN
clrscr;
sn:=0;
init;
hv(n);
if sn<>0 then
writeln(‘Co tat ca’,sn,’ hoan vi cua ‘,n,’ so’)
else writeln(‘Vo nghiem’);
readln;
END.