有n个数(n是不固定的,可变的)a[1],a[2]....a[n],对应的取值范围是0~v[n], 整数,求一段算法,列出这n个数的所有可能组合
解决方案 »
- 使用OLE的方法打开一个excel文件并保存,有朋友研究过吗?
- 求救!!排课系统怎么实现呀?用的是什么算法?
- 关于线程
- 谁能介绍一下:有没有与Word兼容比较好的控件(For Delphi)?
- 在线请教:怎么在程序里面实现对word的打印设置(如打印页码范围,按纸型缩放的选择等)?
- 有关ShellExecute频繁调用会造成死机??
- 请教从一个库向另一个库倒数据的问题?
- 我下载了Delphi5开发人员指南,但不能阅读,为什么?
- 我怎样判断一个edit中输入的是数字值?谢谢!
- 如何创建Insertable Object
- Delphi7下GPIO如何使用?
- leslie模型MATLAB编程求解过程中出现:
...
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
procedure dfs(step:Integer);
public
{ Public declarations }
end;var
Form1: TForm1;
data,a,b:array of integer;
m:integer;
n:Integer;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
i,j:Integer;
begin
//edit1.Text:='1,2,3,4,5,6,7';
Memo1.Lines.BeginUpdate;
Memo1.Clear;
Memo1.Lines.Delimiter:=',';
Memo1.Lines.DelimitedText:=edit1.Text;
m:=Memo1.Lines.Count;
SetLength(data,m+1);
SetLength(a,m+1);
Setlength(b,m+1);
for i:=0 to memo1.Lines.Count-1 do
data[i+1]:=StrToInt(Memo1.Lines[i]);
memo1.Clear; for i:=m downto 1 do
begin
for j:=0 to i do
begin
a[j]:=0;
b[j]:=0;
end;
n:=i;
dfs(1);
end;
Memo1.Lines.EndUpdate;
SetLength(data,0);
SetLength(a,0);
SetLength(b,0);
end;procedure TForm1.dfs(step: Integer);
var
i:integer;
s:string;
begin
if step>n then
begin
s:='';
for i:= 1 to n do
s:=s+' '+inttostr(a[i]); memo1.Lines.Add(s);
exit;
end; for i:=1 to m do
if b[i]=0 then
begin
a[step]:=data[i];
if a[step-1]>a[step] then Continue;
b[i]:=1;
dfs(step+1);
b[i]:=0;
end;
end;
...