Для решения этой задачи мы будем использовать перебор пар последовательности чисел и проверку на выполнение заданных условий.
Алгоритм решения
- Чтение данных: Мы будем считывать последовательность неотрицательных целых чисел из файла.
- Перебор пар: Затем последовательно будем проверять каждую пару из двух идущих подряд элементов.
- Проверка условий: Для каждой пары будем проверять, выполняются ли условия:
- хотя бы одно из чисел в паре делится на 3,
- сумма чисел в паре делится на 5.
- Учет результата: Если оба условия выполнены, мы будем:
- увеличивать счётчик пар,
- проверять, является ли сумма текущей пары максимальной, и обновлять максимальную сумму при необходимости.
- Вывод результата: В конце мы выведем количество найденных пар и максимальную сумму.
Пример на языке Python
Давайте рассмотрим, как это можно реализовать на Python:
# Открываем файл с числами
with open('17.txt') as f:
# Считываем первое число
x = int(f.readline())
# Инициализируем переменные для подсчета пар и их максимальной суммы
count = 0
max_sum = 0
# Проходим по остальным числам в файле
for line in f:
y = int(line)
# Проверяем условия
if (x % 3 == 0 or y % 3 == 0) and ((x + y) % 5 == 0):
count += 1 # Увеличиваем счетчик пар
max_sum = max(max_sum, x + y) # Обновляем максимальную сумму, если нужно
x = y # Обновляем x для следующей итерации
# Выводим результат: количество пар и максимальная сумма
print(count, max_sum)
Объяснение кода
- Чтение файла: Мы открываем файл
17.txtи считываем первое число, которое сохраняем в переменнуюx. - Цикл по файлу: Мы используем цикл for для считывания остальных чисел. В каждой итерации мы сохраняем текущее число в переменной
y. - Условия: Внутри цикла проверяем, делится ли хотя бы одно из чисел на 3 и делится ли сумма чисел на 5. Если оба условия выполняются, увеличиваем счетчик пар
count. - Максимальная сумма: Если сумма текущей пары превышает текущую максимальную сумму, мы обновляем
max_sum. - Вывод: После выхода из цикла мы выводим общее количество пар и максимальную сумму.
Таким образом, к концу программы мы получим искомые результаты. Это решение просто и эффективно для нашей задачи.
Заключение
Ввод данных и условия задачи требуют аккуратного подхода и проверки. Всегда важно тщательно тестировать программу, чтобы убедиться, что она работает как ожидается. Мы также можем адаптировать решение на другом языке программирования, как было показано в изначальном задании.