谁能给我做个pascal程序??

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:58:25
利用地跪方法生成从一到n(n<10)的n个数中取k(1<=k<=n)个数的全部可能的排列(不一定按升序输出)
例如n=3 k=2
输出
12 13 21 23 30
31
最好用if 和for语句

program pailei;
const m=4;
var a:array[1..m] of integer ;
b:array[1..m] of boolean;
procedure print;
var i:integer;
begin
for i:=1 to m do
write(a[i]);
writeln;
end;
procedure try(dep:integer);
var i:integer;
begin
for i:=1 to m do
if b[i] then
begin
a[dep]:=i; b[i]:=false;
if dep=m then print else try(dep+1);
b[i]:=true;
end;
end;
begin
fillchar(b,sizeof(b),true);
try(1);
end.