pascal 排列与组合pascal 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 21:36:39
pascal 排列与组合pascal 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r

pascal 排列与组合pascal 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r
pascal 排列与组合
pascal 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r

pascal 排列与组合pascal 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r
不用递归真的想不到什么好方法了..
那么写人工栈吧..
我再想想看..没有方法的话我晚一点写一个看看
----------------
上网看了一圈神马都没找到,干脆写个人工栈好了:
var i,j,k,n,r,dep:longint;
stack:array[0..100]of longint;
procedure quit;
begin
dec(dep);
inc(stack[dep]);
end;
begin
readln(n,r);
dep:=1;
stack[1]:=1;
repeat
if(dep>r)then begin
for i:=1 to r do
write(stack[i],' ');
writeln;
quit();
continue;
end;
if(stack[dep] > (n-r+dep))then begin
quit();
continue;
end
else begin
stack[dep+1]:=stack[dep]+1;
inc(dep);
end;
until(dep=0);
end.