用delphi写一程序,随意输入几个字母或数字或二者的混合,中间用空格分开,输入的数量不固定,最多为5个。输出他们之间所有的组合方式:比如输入a,b,2。输出为ab2,a2b,ba2,b2a,2ab,2ba。
我想了一天也没想出来怎么写,本来比较采,请大虾指点。谢谢了。

解决方案 »

  1.   

    用循环做啊..
    先取出总的参数有多少个..
    比如..
    a,b,2     这个就有3个参数..
    把它存到数组中.A[1]:=a,A[2]:=[b],A[3]:=2,
    然后再一个一个地循环到最后一个数组无素组成一个一个的字符串就是了.
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Memo1: TMemo;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    var
      a:array[1..3] of char;
      i,j,k:integer;
    begin
      a[1]:='a';a[2]:='b';a[3]:='2';
      for i:=1 to 3 do
        for j:=1 to 3 do
          for k:=1 to 3 do
            memo1.Lines.Add(a[i]+a[j]+a[k]);
    end;end.
      

  3.   

    对定长的串用循环可以处理,但是要不定长呢? 你不可能知道该写多少个For语句。 这是一个全排列问题