Весенние старты 2025 з5
В 2008 году в Иркутске по инициативе Городского методического совета учителей информатики первый раз состоялся Городской конкурс юных программистов "Весенние старты". С тех пор это соревнование проходит ежегодно и в нём принимает участие не меньше ста школьников. Первоначально было возрастное ограничение - допускались участники не старше 8 класса, однако затем стали допускать всех независимо от возраста.
До 2017 года в конкурсе была одна номинация "Решение задач" (фактически олимпиада) А в 2017 году появилась вторая номинация - "Смотр проектов" (конференция, на которой юные программисты защищают свои проекты, над которыми работали около года).
-----------------------------------
г. Иркутск
Конкурс юных программистов «Весенние старты» 2025
Номинация "Решение программистских задач"
Автор заданий Г.Б. Рейнгольд
Задача E. Последние цифры (25 баллов)
Задаётся несколько целых чисел.
Требуется сделать программу, которая находит последние две цифры их
произведения. Если в результате умножения получается однозначное число,
то вывести его.
Формат входных данных: одна строка, в которой записаны целые числа
через пробел (количество чисел >1 и <=100, каждое число <=
100000000000000000000000000000000000000000000000000 и >= 1.
Формат выходных данных: одно целое число.
Пример 1:
Вход – 1 2 3 4 5
Выход – 20
Пример 2:
Вход – 367 6
Выход – 02
Пример 3:
Вход – 2 3
Выход – 6
Авторское решение (Python)
# Рейнгольд Г.Б.
# Весенние старты 2025 Задача E Последние цифры
# Для решения этой задачи нужно уметь работать с переменными,
# ветвлениями, циклами и строками.
def oo(n, a): # Все числа < 10, подозрение на однознаяный результат
k = True
for i in range(n):
if int(a[i]) > 9:
k = False
break
return k
def ooo(n, a): # Наличие нуля
k = False
for i in range(n):
if a[i] == '0':
k = True
break
return k
a = list(map(str, input().split()))
n = len(a)
#print(n)
#print(a)
b = 1 # Переменная под произведение
if oo(n, a): # Все числа однозначные, в случае однозначного результата
# вывести только один символ
for i in range(n):
b = b * int(a[i])
if b < 10:
v = str(b)
else:
v = str(b)[-2] + str(b)[-1]
elif ooo(n, a): # попался НОЛЬ
v = 0
else: # нет НОЛЯ и не все однозначные
for i in range(n):
#b = b * int(a[i])
#v = str(b)[-2] + str(b)[-1]
if int(a[i]) > 9:
c = int(a[i][-2] + a[i][-1]) # оставляем только 2 последние цифры
b = b * c
else:
b = b * int(a[i])
#print(i, b)
b = b % 100 # оставляем только 2 последние цифры
if b < 10: # приписать слева НОЛЬ, так как получилось число многозначное
v = '0' + str(b)
else:
v = str(b)[-2] + str(b)[-1] # оставляем только 2 последние цифры
print(v)
Свидетельство о публикации №226042401412
Александр Михельман 24.04.2026 16:49 Заявить о нарушении