const N: Integer = 7; // 数组长度 M: Integer = 3; // 组合长度var arySrc: array of Integer; aryDst: array of Integer;procedure TForm1.QueAay(nIdx: Integer; mIdx: Integer); var i: Integer; str: String; begin aryDst[mIdx] := arySrc[nIdx]; if mIdx = M - 1 then begin str := ''; for i := 0 to M - 1 do begin str := str + IntToStr(aryDst[i]) + ','; end; ListBox1.Items.Add(str); exit; end; for i := nIdx + 1 to N - 1 do begin QueAay(i, mIdx + 1); end; end;procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin SetLength(arySrc, N); SetLength(aryDst, M); for i := 0 to N - 1 do begin arySrc[i] := i; end; for i := 0 to N - M do begin QueAay(i,0); end; end;
N: Integer = 7; // 数组长度
M: Integer = 3; // 组合长度var
arySrc: array of Integer;
aryDst: array of Integer;procedure TForm1.QueAay(nIdx: Integer; mIdx: Integer);
var
i: Integer;
str: String;
begin
aryDst[mIdx] := arySrc[nIdx];
if mIdx = M - 1 then
begin
str := '';
for i := 0 to M - 1 do
begin
str := str + IntToStr(aryDst[i]) + ',';
end;
ListBox1.Items.Add(str);
exit;
end; for i := nIdx + 1 to N - 1 do
begin
QueAay(i, mIdx + 1);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
SetLength(arySrc, N);
SetLength(aryDst, M);
for i := 0 to N - 1 do
begin
arySrc[i] := i;
end; for i := 0 to N - M do
begin
QueAay(i,0);
end;
end;