Заполните массив случайными числами в интервале [0,1000] и выведите номера двух соседних элементов, произведение которых наибольшее паскаль. выполнить с рандома

myhaylonotochk myhaylonotochk    3   24.08.2019 19:20    6

Ответы
volkego2015 volkego2015  02.08.2020 22:53
Const
K = 7;
Var
A:array[1..K] of integer;
i,n:integer;
Begin
For i:= 1 to K do
    Begin
    A[i]:=random(1001);
    Write(A[i],' ');
    End;
WriteLn;
n:=1;
For i:= 2 to K-1 do
    if A[i]*A[i+1]>A[n]*A[n+1] then n:=i;
WriteLn(n,' и ',n+1)
End.
ПОКАЗАТЬ ОТВЕТЫ
Artyr2017 Artyr2017  02.08.2020 22:53
// PascalABC.NET 3.2, сборка 1389 от 01.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),0,1000); a.Println;
  var i:=a.Pairwise.Select(x->x[0]*x[1]).ToArray.IndexMax;
  Writeln('Элементы ',i+1,' и ',i+2,' дают произведение ',a[i]*a[i+1])
end.

Пример
n= 15
115 263 63 193 374 685 174 755 728 654 979 274 93 994 411
Элементы 10 и 11 дают произведение 640266
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика