Дан массив из n целых чисел а₁,а₂ⁿ.вам нужно проверить,есть ли в этом массиве три числа сумма которых равна нулю. можете сделать программу

9570896123 9570896123    3   13.09.2019 04:10    0

Ответы
fedrpopov5 fedrpopov5  07.10.2020 11:04
// PascalABC.NET 3.3, сборка 1590 от 03.12.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('n=');
  var a:=ArrRandom(n,-50,50); a.Println;
  var m:=n-1;
  var found:=false;
  for var i:=0 to m do begin
    for var j:=0 to m do
      if i=j then continue
      else begin
        for var k:=0 to m do
          if (k=i) or (k=j) then continue
          else
            if a[i]+a[j]+a[k]=0 then begin
              Println('Решение:',a[i],a[j],a[k]);
              found:=true;
              break
              end;
        if found then break
        end;
    if found then break
    end;
  if not found then Writeln('Нет нужной тройки чисел')
end.

Примеры
n= 13
-25 -29 41 -19 -9 50 -23 36 33 23 48 -6 -5
Решение: -25 -23 48

n= 8
-33 -23 -3 -5 -5 -20 -22 34
Нет нужной тройки чисел
ПОКАЗАТЬ ОТВЕТЫ
sotela546hgjUlia sotela546hgjUlia  07.10.2020 11:04
Var i,j,k,n,sum:integer;
 input,output:text;
a:array[1..100] of integer;
flag:boolean;
begin flag:=false;
Assign(Input,'d.in');
reset(input);
readln(input,n);
assign(output, 'd.out');
rewrite(output);
writeln('Input elements');
readln (n);
for i:=1 to n do read(a[i]);
for i:=1 to n do 
for j:=1 to n do 
for k:=1 to n do 
if (i<>j) and (j<>k) and (i<>k) then
 if a[i]+a[j]+a[k]=0 
then
begin
writeln (output,'Yes');
flag:=true;
halt;
end;
if flag=false then writeln(output,'No');
close(input);
close(output);
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика