Есть ответ 👍

Определите наименьшее расстояние между двумя локальными максимумами последовательности натуральных чисел, завершающейся числом 0. если в последовательности нет двух локальных максимумов, выведите число 0. начальное и конечное значение при этом локальными максимумами не считаются. pascal или python

100
216
Посмотреть ответы 2

Ответы на вопрос:


Под локальным максимумом, скорее всего, имеется в виду число, большее чем оба его соседа, за исключением случая, когда соседом справа является 0. в таком случае достаточно однократно пройтись по всем числам, запоминая минимальное из расстояний между новым и предыдущим обнаруженными максимумами. программа (язык pascal abc.net) var i1,i2,i3: integer;       i: integer;       curr,minr,lastmax: integer; begin   readln(i1,i2);   i: =2;   minr: =1000000;   repeat       readln(i3);       if (i2> i1) and (i2> i3) and (i3< > 0) then begin           curr: =i-lastmax;           if curr< minr then minr: =curr;           lastmax: =i;       end;             i1: =i2;       i2: =i3;       i+=1;   until i2=0;   if minr=1000000 then writeln(0) else writeln(minr); {стоило бы добавить булевую переменную в качестве флага - был ли хоть один max, но вряд ли расстояние между ними превысит миллион : -} end.
leon7771
4,8(71 оценок)

Program sredarifment;   var a: array[1..10] of real;     i, k: integer;     c, s, sred: real;   begin    for i: =1 to 10 do    begin      write ('a[',i,']='); readln (a[i]);     end;     write('введите c: '); readln (c);     for i: =1 to 10 do    begin      if a[i]> c then      begin s: =s+a[i]; k: =k+1; end;     end;     sred: =s/k;     writeln('среднее арифметическое чисел, превосходящих ',c,' равно ',sred);   end.

Популярно: Информатика