СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости




Задания
Версия для печати и копирования в MS Word
Задание 25 № 2906

Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих четных элементов в целочисленном массиве длины 30.

Решение.

const N=30;

var a: array[1..N] of integer;

MaxEven, NumEven, i: integer;

begin

MaxEven:=0;

NumEven:=0;

for i:=1 to N do

read(a[i]);

for i:=1 to N do

if (a[i] mod 2 = 0) then

NumEven:=NumEven+1

else begin

if NumEven>=MaxEven then

MaxEven:=NumEven;

NumEven:=0;

end;

if NumEven>=MaxEven then

MaxEven:=NumEven;

Writeln(MaxEven);

end.

Спрятать решение · ·
Александр Мордвинов 13.02.2015 20:02

Предлагаю свой вариант решения, использующий логические функции.

NOT odd можно заменить на "a[i] mod 2 = 0".

 

program naz;

const

n=10;

var

a:array[1..n] of integer;

i,b,max : integer;

BEGIN

for i:=1 to n do

read(a[i]);

max:=1;

b:=1;

for i:=1 to n-1 do

begin

if (NOT odd(a[i])) and (NOT odd(a[i+1])) then inc(b) else b:=1;

if b>max then max:=b;

end;

writeln(max);

END.

Служба поддержки

Логические функции это хорошо, а двойная проверка каждого элемента на чётность — не очень. Массив проверяется от начала до конца, на чётность достаточно проверять каждое последующее значение: предыдущее уже проверено на предыдущем шаге.