Привет всем! Сегодня я хочу поделиться с вами своим опытом написания программы на языке Python, которая находит первое с конца чётное число в заданном массиве, используя принцип стека.
Для начала, нам нужно задать массив чисел. Вводимое число элементов в массиве, а затем сами числа. Я создаю функцию с названием ‘find_first_even’, которая принимает два параметра⁚ количество элементов в массиве ‘n’ и сам массив ‘arr’.def find_first_even(n, arr)⁚
Затем я создаю пустой стек, который будет использоваться для хранения чисел. Каждый элемент, прошедший проверку на чётность, будет добавляться в стек.stack []
Поскольку мы хотим найти первое с конца чётное число, мы будем проходить по массиву в обратном порядке. Я использую цикл ‘for’ с диапазоном от ‘n-1’ до ‘0’ с шагом -1.for i in range(n-1, -1, -1)⁚
Внутри цикла мы проверяем, является ли текущий элемент чётным числом. Если это так, мы добавляем его в стек и прерываем цикл, так как мы нашли первое с конца чётное число.if arr[i] % 2 0⁚
stack.append(arr[i])
break
После завершения цикла, мы проверяем, был ли стек заполнен. Если стек пустой, это означает, что в массиве нет чётных чисел, и функция вернёт -1. В противном случае, мы возвращаем верхний элемент стека, который будет первым с конца чётным числом.if len(stack) 0⁚
return -1
else⁚
return stack[-1]
Теперь мы можем вызвать функцию для проверки её работы. Вводим количество элементов в массиве ‘n’ и сам массив ‘arr’.n int(input)
arr list(map(int, input.split))
result find_first_even(n, arr)
print(result)
Вот и всё! Мы написали программу, которая находит первое с конца чётное число в заданном массиве, используя принцип стека. Проверим её работу на примере⁚
Входные данные⁚
5
8 9 10 16 9
Выходные данные⁚
16
Программа успешно находит первое с конца чётное число, которым является 16. Если в массиве не было чётных чисел, функция вернула бы -1.
Я надеюсь, что мой опыт будет полезен для вас. Удачи в программировании!