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

school

Новичок
Пользователь
Апр 23, 2020
4
0
1
Опишите алгоритм подсчета максимального количества подряд идущих четных элементов в целочисленном массиве длины 30
Просьба решить на Python максимально подробно и просто. Я пока слабо разбираюсь в этой теме
 

ValeraSafin

Новичок
Пользователь
Апр 23, 2020
5
3
3
Python:
array = [4, 1, 63, 23, 52, 76, 74, 400, 82, 100, 232, 543, 61, 754, -21, -234, 0, 234, 324, 234, 654, 77,52, 52, 3, 7, 23, 46, 43, 63, 2, 8, 10]


# определяем счётчик для подсчёта нужных нам троек
counter = 0
# создаём цикл, в котором i будет принимать значения 0, 3, 6, 9 ...
for i in range(0, len(array), 3):
  # условием проверяем являются ли все 3 элемента чётными
  if array[i] % 2 == 0 and array[i+1] % 2 == 0 and array[i+2] % 2 == 0:
    # прибавляем к счётчику единицу
    counter += 1

print("Максимум чётных троек: ", counter)
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Опишите алгоритм подсчета максимального количества подряд идущих четных элементов в целочисленном массиве длины 30
Просьба решить на Python максимально подробно и просто. Я пока слабо разбираюсь в этой теме
Вот пример:
Python:
# массив
array = [4, 1, 63, 23, 52, 76, 74, 400, 82, 100, 232, 543, 61, 754, -21, -234, 0, 234, 324, 234, 654, 77,52, 52, 3, 7, 23, 46, 43, 63, 2, 8, 10]
# счетчик для подсчета четных элементов
count = 0
# счетчик для подсчета максимального количества идущих подряд четных элементов
count2 = 0
# проход в цикле по элементам массива
for i in array:
    # если элемент четный
    if i % 2 == 0:
        # прибавляем счетчик
        count += 1
    # если элемент не четный
    else:
        # если значение в count больше сохраненного в count2,
        # то записываем его в count2, если меньше - то не записываем
        count2 = count if count > count2 else count2
        # сбрасываем счетчик
        count = 0
# еще раз проверяем значения счетчиков после цикла и записываем максимальное 
count2 = count if count > count2 else count2
# вывод результата в консоль
print(count2)
 
Последнее редактирование:

school

Новичок
Пользователь
Апр 23, 2020
4
0
1
мне кажется такое решение не подходит для решения егэшного задания
Нужно написать подобно, а я плохо пока разбираюсь в оформлении и могу выполнить решение только на паскале
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);
for i:=1 to N do
if (a 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.
 

Форум IT Специалистов