Дан массив из N целых чисел а1, а2, ..., an. Вам нужно проверить, есть ли в этом массиве три числа сумма которых равна нулю.
Procedure TForm1.Button1Click(Sender: TObject);
var
i1,i2,i3 : Integer;
m : array [1..10] of Integer;
kk : Integer;
begin
Memo1.Clear;
for i1 := 1 to 10 do
begin
m[i1]:= Random(10)-5;
Memo1.Lines.Append(m[+inttostr(i1)+] = +inttostr(m[i1]));
end;
Memo1.Lines.Append();
kk := 0;
for i1 := 1 to 10-2 do
begin
for i2 := i1+1 to 10-1 do
begin
for i3 := i2+1 to 10 do
begin
if ( (m[i1]+m[i2]+m[i3])=0) then
begin
inc(kk);
Memo1.Lines.Append(Индекс = +inttostr(i1)+ +inttostr(i2)+ +inttostr(i3)+ Значение = +inttostr(m[i1])+ +inttostr(m[i2])+ +inttostr(m[i3]));
end;
end;
end;
end;
Memo1.Lines.Append();
if kk>0 then
Memo1.Lines.Append(Да в этом массиве есть три числа сумма которых равна нулю)
else
Memo1.Lines.Append(Нет в этом массиве три числа сумма которых равна нулю);
Memo1.Lines.Append(Количество комбинаций = +inttostr(kk));
end;
