Для решения задачи нужно написать программу, которая принимает на вход последовательность натуральных чисел, находит среди них числа, кратные 5, и определяет максимальное из них.
Подход к решению:
- Сначала программа должна получить количество чисел в последовательности.
- Затем она считывает сами числа.
- Программа проверяет каждое число: делится ли оно на 5 (остаток от деления числа на 5 равен 0).
- Если число делится на 5, оно сравнивается с текущим максимальным числом, кратным 5. Если текущее число больше, программа обновляет максимальное значение.
- В конце программа выводит максимальное число, кратное 5.
Особенности:
- Учитывая ограничения задачи (не более 1000 чисел, каждое не превышает 30 000), алгоритм работает эффективно, так как выполняется за один проход по последовательности.
- Мы гарантируем, что в последовательности всегда будет хотя бы одно число, кратное 5, поэтому дополнительных проверок на отсутствие результата не требуется.
Реализация программы на Python:
# Считываем количество чисел
n = int(input("Введите количество чисел в последовательности: "))
# Инициализируем переменную для хранения максимального числа, кратного 5
max_multiple_of_5 = 0
# Считываем числа и обрабатываем их
for _ in range(n):
num = int(input()) # Читаем следующее число
if num % 5 == 0: # Проверяем, делится ли число на 5
if num > max_multiple_of_5: # Сравниваем с текущим максимумом
max_multiple_of_5 = num
# Выводим максимальное число, кратное 5
print("Максимальное число, кратное 5:", max_multiple_of_5)
Пошаговый пример работы программы:
Входные данные:
Введите количество чисел в последовательности: 5
10
25
30
7
15
Ход выполнения:
- Программа считывает количество чисел:
n = 5
.
- Инициализируется переменная
max_multiple_of_5 = 0
.
- Программа начинает обрабатывать числа:
- Число 10 делится на 5, обновляем
max_multiple_of_5 = 10
.
- Число 25 делится на 5, оно больше текущего максимума, обновляем
max_multiple_of_5 = 25
.
- Число 30 делится на 5, оно больше текущего максимума, обновляем
max_multiple_of_5 = 30
.
- Число 7 не делится на 5, пропускаем.
- Число 15 делится на 5, но меньше текущего максимума, пропускаем.
- После обработки всех чисел выводится результат:
Максимальное число, кратное 5: 30
.
Итоговый вывод:
Максимальное число, кратное 5: 30
Объяснение работы программы:
- Программа линейно проходит по всем числам (всего один цикл), проверяет каждое число на кратность 5, одновременно обновляя максимум. Это делает решение быстрым и эффективным.
- Использование одной переменной для хранения максимального значения минимизирует затраты памяти.
Альтернативные способы ввода данных:
Если все числа заданы одной строкой, можно адаптировать программу:
# Считываем числа из одной строки
numbers = list(map(int, input("Введите числа через пробел: ").split()))
# Инициализируем переменную для хранения максимального числа, кратного 5
max_multiple_of_5 = 0
# Обрабатываем числа
for num in numbers:
if num % 5 == 0:
if num > max_multiple_of_5:
max_multiple_of_5 = num
# Выводим результат
print("Максимальное число, кратное 5:", max_multiple_of_5)
Этот вариант удобен, если числа вводятся через пробел.
Итог:
Программа корректно решает поставленную задачу, соблюдая условия и ограничения. Она проста, эффективна и легко адаптируется под разные способы ввода данных.