我不知道你是想要一个算法还是显示这几百个组合。
算法:
procedure Tform1.plzh(m,r:integer);
var
a:array[0..100] of integer;
i,j:integer;
hm:string;
begin
i:=0;
a:=1;
repeat
if(a-i<=m-r+1) then
begin
if(i=r-1) then
begin
hm:='';
for j:=0 to r-1 do
hm:=hm+'、'inttostr(a[j]);
memo1.Lines.Add(hm);
a:=a+1;
continue;
end;
i:=i+1;
a:=a[i-1]+1;
end
else
begin
if(i=0) then
exit;
i:=i-1;
a:=a+1;
end;
until(1<>1)
end;
m是要组合的总数 如 29
r是要抽取的数 如 7
如果是要组合29选7,文件很大,在MEMO是显示不完的,你可把它输出到一个文本文件后再用WORD打开