组合输出(非递归)

来源:互联网 发布:i miss you网络歌曲 编辑:程序博客网 时间:2024/05/29 19:03
非常经典,你值得拥有。
program t;var i,j,r,n:longint;      a:array[1..30]of longint;begin read(n,r); i:=0; repeat  if a[i]-i<=n-r then  {判断是否还有数可选}   if i=r then     begin      for j:=1 to r do write(a[i],' ');     writeln;     a[i]:=a[i]+1;   end  else    begin      i:=i+1;     a[i]:=a[i-1]+1;   end else   if i>0 then     begin      i:=i-1;      a[i]:=a[i]+1;    end;  until a[0]<>0;end.