喷血求救了!!!!! ( 积分: 100 )

  • 主题发起人 主题发起人 lys555555
  • 开始时间 开始时间
L

lys555555

Unregistered / Unconfirmed
GUEST, unregistred user!
在任意自然数区间取三个数值之和大于某一固定数值如:在1到9之间任意取三个数的值>12,这三个数不能重复,把所有可能性都列出来.怎么做呀,没有找到比较好的办法.如:2+3+8>12
3+4+6>12等.
 
各位高手:请帮帮忙!DELPHI执行编译一次后,需关闭重开DELPHI后,才能再继续编译上次开的程式.请问, 这是怎么回事呀?真要这样子,那我写程式要运行就麻烦死了呀
 
function GetAList(Min, Max, Sum: Integer; Strs: TStrings): Integer;
var
I, J, K: Integer;
begin
Strs.Clear;
Result := 0;
if Max - Min < 2 then Exit; //区间内小于三个数,或者Max < Min
if Max * 3 - 3 <= Sum then Exit; //最大三个数之和小于Sum
Strs.BeginUpdate;
try
for I := Max downto Min - 2 do
for J := I - 1 downto Min - 1 do
for K := J - 1 downto Min do
if I + J + K > Sum then
Strs.Add(Format('%d+%d+%d', [I, J, K]));
finally
Strs.EndUpdate;
end;
Result := Strs.Count;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := '1到9之间任意三个数合大于12的组合共有' + IntToStr(GetAList(1, 9, 12, ListBox1.Items)) + '个';
end;
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部