Давайте подробно разберем каждую из задач и решим их пошагово.
Задача 1
Описание:
Дано число N, затем массив из N целых чисел. Требуется найти максимально число из массива, которое заканчивается на ту же цифру, что и последнее число в массиве.
Пример из условия:
Ввод:
6 — число N
16 999 96 6 96 — массив из 6 чисел
Шаги решения:
- Считать число N.
- Считать массив из N целых чисел.
- Определить последнюю цифру последнего элемента массива.
- Среди всех элементов массива найти те, что заканчиваются на эту же цифру.
- Выбрать среди них максимальное число.
- Вывести это число.
Реализация на Python:
N = int(input()) # Читаем число N
numbers = list(map(int, input().split())) # Считываем массив чисел
last_number = numbers[-1] # Последний элемент массива
last_digit = last_number % 10 # Последняя цифра этого числа
# Отбираем числа, у которых последняя цифра равна last_digit
filtered_numbers = [num for num in numbers if num % 10 == last_digit]
# Находим максимум среди отобранных чисел
max_number = max(filtered_numbers)
print(max_number)
Задача 2
Описание:
Дано число N и 2N записей: имя и оценка за урок. Возможно несколько ответов одного ученика, и нужно определить минимальную оценку, которую получил последний попадший в список ученик.
Что нужно сделать:
- Обработать список, запомнить оценки каждого ученика.
- Определить, кто последний учился (последний по появлениям в списке).
- В онлайн-списке определенной фамилии найти все оценки этого ученика и выбрать минимальную.
Шаги решения:
- Считать N.
- Построчно считать 2N строк: имя, оценка.
- Вести учет порядка появления учеников, запоминая последнего.
- В конце определить, кто последний.
- Найти все оценки этого последнего ученика и вывести минимальную.
Реализация на Python:
N = int(input())
students = {} # словарь: имя -> список оценок
order = [] # список порядка появления учеников
last_student = None
for _ in range(N):
name = input().strip()
grade = int(input())
if name not in students:
students[name] = []
order.append(name)
students[name].append(grade)
last_student = name # запоминаем последний ученика
# В конце ищем оценки последнего ученика
min_grade = min(students[last_student])
print(min_grade)
Задача 3
Описание:
Нужно составить список учеников, у которых оценка выше средней арифметической всех оценок.
Шаги решения:
- Считать число N.
- Построчно считать имена и оценки.
- Посчитать среднюю арифметическую всех оценок.
- Выбрать учеников с оценками выше этой средней.
- Вывести список.
Реализация на Python:
N = int(input())
students = [] # список кортежей (имя, оценка)
sum_grades = 0
for _ in range(N):
name = input().strip()
grade = int(input())
students.append((name, grade))
sum_grades += grade
average = sum_grades / N
# Набираем учеников, у которых оценка выше среднего
result = [name for name, grade in students if grade > average]
print(result)
Если нужно, я могу подготовить более подробное объяснение или дополнить решение какими-то деталями.