我需要在 Delphi 7 中编写一个函数,列出 3 个整数的所有可能组合(不重复),使用范围从 1 到 8。例如:
123 124 125 ... 412 413 415 ... 874 875 876
此函数将用于比较目的,所以如果它尽可能快就更好了。
请,有人可以给出一个想法(如果可能的话,用一些代码示例)?
谢谢!
好吧,这就是我到目前为止所得到的。请,如果有人有任何提示可以使它更好(提高性能,减少代码,...),请帮助我。再次感谢!
Function IsNumOnSet(Max, Num: Integer): Boolean;
var
X, Y, Z: Integer;
Begin
Result := False;
For X := 1 to Max Do
For Y := 1 to Max Do
For Z := 1 to Max Do
If (X <> Y) and (X <> Z) and (Y <> Z) Then
If (IntToStr(X) + IntToStr(Y) + IntToStr(Z) = IntToStr(Num)) Then
Begin
Result := True;
Exit;
end;
end;
这是新的和完成的功能,在 Ken 的帮助下。将来可能对其他人有用。谢谢!
Function IsNumOnSet(const Min, Max, Num: Integer): Boolean;
var
X, Y, Z: Integer;
Begin
Result := False;
For X := Min to Max Do
For Y := Min to Max Do
For Z := Min to Max Do
If (X <> Y) and (X <> Z) and (Y <> Z) Then
If (X * 100 + Y * 10 + Z = Num) Then
Begin
Result := True;
Exit;
end;
end;
如果有人有更好的想法,请告诉我们!