Решение: Максимальное число, кратное 8
Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 8. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 8.
Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000.
Программа должна вывести одно число: максимальное число, кратное 8.
Решение по шагам
5 шаговСчитываем количество чисел в последовательности.
$$n = \text{int(input())}$$Так как в последовательности обязательно есть число, кратное 8, начнём поиск максимума с первого подходящего числа. Для каждого числа проверяем остаток от деления на 8.
Если число делится на 8 и превосходит найденный максимум, обновляем значение максимума.
$$x \bmod 8 = 0 \land x > \mathrm{maximum}$$После обработки всех чисел выводим максимальное число, кратное 8.
$$\mathrm{print}(\mathrm{maximum})$$Один из возможных вариантов программы на Python:
$$n = int(input()) maximum = None for _ in range(n): x = int(input()) if x % 8 == 0 and (maximum is None or x > maximum): maximum = x print(maximum)$$n = int(input())
maximum = None
for _ in range(n):
x = int(input())
if x % 8 == 0 and (maximum is None or x > maximum):
maximum = x
print(maximum)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют делимость не на 8, а на другое число.
Забывают обновлять максимум только для чисел, кратных 8.
Инициализируют максимум нулём, хотя в общем случае подходящие числа могут быть отрицательными.
Выводят первое найденное число, не сравнивая его с последующими подходящими числами.