Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, оканчивающихся на 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 3. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — количество чисел, оканчивающихся на 3. НА ПИТОНЕ

nastyagorcha nastyagorcha    2   25.08.2020 17:27    68

Ответы
Снежана2018 Снежана2018  15.10.2020 16:16

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)

наверно так

ПОКАЗАТЬ ОТВЕТЫ
Kiraпомошник Kiraпомошник  15.10.2020 16:16

В задаче нам гарантируется, что на ввод подаются исключительно числа. При чем даже заданы ограничения с которыми они подаются, так что мы можем избавить себя от их валидации и сразу приступить к обработке.

Перво-наперво, нам необходимо получить количество чисел в последовательности. Для этого просто берем первую строку в стандартном вводе и рассматриваем её как число (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))  # Сколько осталось?

Если ответ устроил, не забудь отметить его как "Лучший".

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика