Решение: Минимальное число на 2
Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, оканчивающееся на 2. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 2.
Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000.
Программа должна вывести одно число: минимальное число, оканчивающееся на 2.
Пример работы программы:
Входные данные:
3
22
12
36
Выходные данные:
12
Решение по шагам
5 шаговСчитываем количество чисел в последовательности.
$$n = \mathrm{int}(\mathrm{input}())$$В качестве начального значения минимума удобно взять большое число, например 30001, так как все входные числа не превышают 30000 по модулю.
$$minimum = 30001$$Для каждого числа проверяем остаток от деления на 10. Если остаток равен 2, число оканчивается на 2.
$$x \% 10 = 2$$Если найденное число меньше текущего минимума, заменяем значение минимума.
$$minimum = \min(minimum, x)$$После обработки всех чисел выводим найденный минимум.
$$print(minimum)$$n = int(input())
minimum = 30001
for _ in range(n):
x = int(input())
if x % 10 == 2 and x < minimum:
minimum = x
print(minimum)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют делимость на 2 вместо последней цифры числа.
Забывают обновлять минимум только для чисел, оканчивающихся на 2.
Инициализируют минимум нулём, из-за чего положительные числа не могут стать минимальными.
Выводят все найденные числа вместо одного минимального.