procedure TForm1.Button1Click(Sender: TObject); var s,s1,s2,s3: string; sL: TStringList; i,j,k: byte; begin s:= '123,456,789'; sL:= TStringList.Create; sL.Delimiter:= ','; sL.DelimitedText:= s; s1:= sL[0]; s2:= sL[1]; s3:= sL[2]; for i:= 1 to length(s1) do for j:= 1 to length(s2) do for k:= 1 to length(s3) do begin memo1.Lines.Add(s1[i]+s2[j]+s3[k]); end; sl.Free; end;
这是用FOR 用递归怎么写
这样: 用一个二维数组d[3][3]存储原有的数字,d[1][x]存储百位的,d[2][x]存储十位的,d[3][x]存储个位的。 另造r[3]存储最终结果。 递归的函数这样写(伪码) int f(int n) { if(n>3) 输出后退出; for i=1 to 3 do { r[n]=d[n][i]; f(n+1); } }调用时用f(1)就可以了。 函数f的参数表示放到第几个数了。从第1个开始,放好后再放第二个。 不知符不符合要求。 ^^
var
s,s1,s2,s3: string;
sL: TStringList;
i,j,k: byte;
begin
s:= '123,456,789';
sL:= TStringList.Create;
sL.Delimiter:= ',';
sL.DelimitedText:= s;
s1:= sL[0];
s2:= sL[1];
s3:= sL[2];
for i:= 1 to length(s1) do
for j:= 1 to length(s2) do
for k:= 1 to length(s3) do
begin
memo1.Lines.Add(s1[i]+s2[j]+s3[k]);
end;
sl.Free;
end;
用递归怎么写
用一个二维数组d[3][3]存储原有的数字,d[1][x]存储百位的,d[2][x]存储十位的,d[3][x]存储个位的。
另造r[3]存储最终结果。
递归的函数这样写(伪码)
int f(int n)
{
if(n>3)
输出后退出; for i=1 to 3 do
{
r[n]=d[n][i];
f(n+1);
}
}调用时用f(1)就可以了。
函数f的参数表示放到第几个数了。从第1个开始,放好后再放第二个。
不知符不符合要求。 ^^