Весенние старты 2025 з5
Конкурс юных программистов «Весенние старты» 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 Заявить о нарушении