Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, оканчивающихся на 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 3. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — количество чисел, оканчивающихся на 3. НА ПИТОНЕ
print("Введите n: ")
n = input() #берем от пользователя n
k = 0 #это счетчик
#Пробегаем в цикле n раз и берем следующие числа, которые введет пользователь
for i in range(int(n)):
a = input() #Берем очередное число
if int(a) % 10 == 3: #если число оканчивается на 3
k += 1 #увеличиваем счетчик
#В конце выводим результат
print("Количество: ", k)
наверно так
В задаче нам гарантируется, что на ввод подаются исключительно числа. При чем даже заданы ограничения с которыми они подаются, так что мы можем избавить себя от их валидации и сразу приступить к обработке.
Перво-наперво, нам необходимо получить количество чисел в последовательности. Для этого просто берем первую строку в стандартном вводе и рассматриваем её как число (1 строка кода).
Затем, нам надо получить все элементы последовательности. Но нам не обязательно работать с ними, как с числами, так как с нас не требуют математических операций. Так что просто оставляем их в виде строк (2 строка кода).
Далее, необходимо убрать все лишние значения (не оканчивающиеся на 3) и оставить только нужные. Для этого используем стандартную функцию filter, в которой проверяем последние символы строк на соответствие "3" (строка кода 3).
Осталось только посчитать количество оставшихся строк и вывести результат (строка кода 4).
Код:
N = int(input())
sequence = [input() for _ in range(N)] # Вводим числа
sequence = list(filter(lambda x: x[-1] == "3", sequence)) # Отсеиваем лишние
print(len(sequence)) # Сколько осталось?
Если ответ устроил, не забудь отметить его как "Лучший".