从1,2,3,...9的数字中,如何得到下面的排列组合(列数不相等,但各列只和等于排列的数字的个数,即等于9):
比如:三列,用;号隔开。1;4;4
2;5;2
3;3;3
...比如,四列,用;号隔开
1;6;1;1
3;3;2;1
2;2;3;2
...
比如:三列,用;号隔开。1;4;4
2;5;2
3;3;3
...比如,四列,用;号隔开
1;6;1;1
3;3;2;1
2;2;3;2
...
解决方案 »
- delphi运行时有这样的提示
- 寻卡失败!做过Mifare one 读卡器二次开发的进来看下。。
- 有关错误的捕捉
- 向各位高手请教
- 哪里有联通或移动的发短消息的代码? 谢谢告诉我啊!
- 一段关于网络传输文件的代码,请各位帮助分析分析。。给高分!!!
- 怎样在dll中隐藏输出的函数名???急!!!
- 网络无限自由,注册不注册由你。UC五位数的号很快就没有了
- delphi代码里怎么样实现sybase数据库中动态取消或建立某字段为索引字段或其他的属性字段?
- CXDBtreelist 用dxComponentPrinter控件打印怎么设置CXDBtreelist中字段的宽度
- (广州求职)找工作难呀~~~~ 我的要求降了。4年工作经验。up有分
- 版主大人,这样扣我信誉分很难服人哟!!
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;type
TForm1 = class(TForm)
Button1: TButton;
RichEdit1: TRichEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}function PaiLie(x:Integer;s:string):string;
var
i:Integer;
str:string;
F:TextFile;
begin if x=0 then
begin
AssignFile(f,'c:\temp.txt');
Append(f);
writeln(f,Copy(s,1,Length(s)-1));
CloseFile(f);
result:=Copy(s,1,Length(s)-1);
end
else if x=1 then
begin
AssignFile(f,'c:\temp.txt');
Append(f);
writeln(f,s+'1');
CloseFile(f); result:=s+'1';
end
else
begin
for i:=1 to x do
begin
str:=s+inttostr(i)+';';
result:=PaiLie(x-i,str);
end;
end;end;procedure TForm1.Button1Click(Sender: TObject);
var
F:TextFile;
s:string;
begin
AssignFile(F,'c:\temp.txt');
ReWrite(f);
CloseFile(f); s:='';
s:=PaiLie(9,s); AssignFile(F,'c:\temp.txt');
ReSet(f); while not eof(f) do
begin
readln(f,s);
RichEdit1.Lines.Add(s);
end;
CloseFile(f);end;end.
我的题出的不是很严密,应该是这样的,有几列就必须有几项,比如(1,2,3,4,5,6,7,8,9)排成4列中可能是:
1;6;1;1
3;3;2;1
9;0;0;0;
0;9;0;0
...中间要考虑0的因素。可以考虑先(1,2,3,4,5,6,7,8,9)变成(0,1,2,3,4,5,6,7,8,9)再往下考虑。这个该如何实现呢?多谢。