用递归实现排列组合取数(组合显示 例5选3等)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

例:

2选1

结果1

2

5选2

结果1$2

1$3

1$4

1$5

2$3

2$4

2$5

3$4

3$5

4$5

用BCB3实现

void __fastcall TForm1::Button1Click(TObject *Sender)

{

temp = "";

count = 0;

for(int i=0;i<100;i++)bt[i]="";

Memo1->Lines->Clear();

int x,y;

x = Edit1->Text.ToIntDef(1);

y = Edit2->Text.ToIntDef(1);

Fun(x,y);

Memo1->Lines->Add("总共"+AnsiString(count)+"条记录");

j=0;

}

//---------------------------------------------------------------------------

AnsiString __fastcall TForm1::Fun(int a,int b)

{

if (a==b)

{

for(int i=b;i>=1;i--)

temp =temp + " $ " + (AnsiString)i;

Memo1->Lines->Add(temp);

temp ="";

count++;

return "";

}

else if (b==0)

{

Memo1->Lines->Add(temp);

temp = "";

count++;

return "";

}

else

{

temp = Fun(a-1,b);

bt[j]= " $ "+AnsiString(a);

j++;

int i=0;

while(bt[i]!="")

{

temp = temp + bt[i];

i++;

}

temp = Fun(a-1,b-1) + temp ;

bt[j]="";

j--;

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航