题目是这样子的输入一个数,然后算他有多少种组合。并列出组合的结果。比如用户在屏幕上输入一个  4然后屏幕上就出现以下24组的组合
a2  a1  a4  a3
a2  a1  a3  a4
a2  a4  a3  a1
a2  a4  a1  a3
a2  a3  a1  a4
a2  a3  a4  a1
a3  a2  a1  a4
a3  a2  a4  a1
a3  a1  a4  a2
a3  a1  a2  a4
a3  a4  a2  a1
a3  a4  a1  a2
a4  a3  a2  a1
a4  a3  a1  a2
a4  a2  a1  a3
a4  a2  a3  a1
a4  a1  a3  a2
a4  a1  a2  a3
a1  a4  a3  a2
a1  a4  a2  a3
a1  a3  a2  a4
a1  a3  a4  a2
a1  a2  a4  a3
a1  a2  a3  a4本题的难点就是列来那些组合数来这个数合的个数就是所输入数的阶乘!

解决方案 »

  1.   

    请求能不能用PASCAL语言来编写一个这样的程序
      

  2.   

    很容易的:)
    你给300分就给你答案http://lysoft.7u7.net
      

  3.   

    http://community.csdn.net/Expert/topic/3124/3124930.xml?temp=.9070246
      

  4.   

    //这叫排列,不叫组合,明白不?~~function Collocate(mStrings: TStrings; mLength: Integer): Boolean; { 全排列 }
      procedure pCollocate(mLeft, mRight: string);
      var
        I, L: Integer;
        Temp: string;
      begin
        L := Length(mLeft);
        if L = 0 then
        begin
          Temp := '';
          for I := 1 to Length(mRight) do
            Temp := Format('%s a%d', [Temp, Ord(mRight[I])]);
          Delete(Temp, 1, 1);
          mStrings.Add(Temp);
        end else for I := 1 to L do begin
          Temp := mLeft;
          Delete(Temp, I, 1);
          pCollocate(Temp, mRight + mLeft[I]);
        end;
      end;
    var
      S: string;
      I: Integer;
    begin
      Result := False;
      if not Assigned(mStrings) then Exit;
      S := '';
      for I := 1 to mLength do S := S + Chr(I);
      mStrings.BeginUpdate;
      try
        mStrings.Clear;
        pCollocate(S, '');
      finally
        mStrings.EndUpdate;
      end;
      Result := True;
    end; { Collocate }procedure TForm1.Button1Click(Sender: TObject);
    begin
      Collocate(Memo1.Lines, StrToIntDef(Edit1.Text, 0));
    end;a1 a2 a3 a4
    a1 a2 a4 a3
    a1 a3 a2 a4
    a1 a3 a4 a2
    a1 a4 a2 a3
    a1 a4 a3 a2
    a2 a1 a3 a4
    a2 a1 a4 a3
    a2 a3 a1 a4
    a2 a3 a4 a1
    a2 a4 a1 a3
    a2 a4 a3 a1
    a3 a1 a2 a4
    a3 a1 a4 a2
    a3 a2 a1 a4
    a3 a2 a4 a1
    a3 a4 a1 a2
    a3 a4 a2 a1
    a4 a1 a2 a3
    a4 a1 a3 a2
    a4 a2 a1 a3
    a4 a2 a3 a1
    a4 a3 a1 a2
    a4 a3 a2 a1