切换到宽版
  • 4440阅读
  • 1回复

新手求助! [复制链接]

上一主题 下一主题
离线雪域$枫
 
只看楼主 倒序阅读 0 发表于: 2007-11-05
06年初赛有生成排列的题,能否给下生成组合的源代码?(PASCAL)
GDKOI2008......STRUGGLE.........
离线caoyuan9642
只看该作者 1 发表于: 2007-11-07
  1. program number;
  2.   var n,i:integer;
  3.       m:longint;
  4.       a:array[1..10]of integer;
  5.       h:array[1..10]of boolean;
  6.   procedure print;
  7.     var i:integer;
  8.     begin
  9.       for i:=1 to n do write(a[i],' ');
  10.       writeln;
  11.     end;
  12.   procedure find(k:integer);
  13.     var i,j:integer;
  14.     begin
  15.       if k>n then begin print;inc(m);end
  16.         else begin
  17.               for i:=1 to n do begin
  18.                 if not h[i] then
  19.                   begin
  20.                     a[k]:=i;
  21.                     h[i]:=true;
  22.                     find(k+1);
  23.                     h[i]:=false;
  24.                   end;
  25.                 end;
  26.             end;
  27.     end;
  28.   begin
  29.     writeln('Please input N!');
  30.     read(n);
  31.     m:=0;
  32.     find(1);
  33.     writeln(m);
  34.   end.
快速回复
限100 字节
 
上一个 下一个