Весенние старты 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)


Рецензии
Полезные задания:—)))с уважением:—))удачи в творчестве.

Александр Михельман   24.04.2026 16:49     Заявить о нарушении