Тема 25. Обработка целочисленной информации

25.03 Маски

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела обработка целочисленной информации
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#24009

Азамат решил попробовать новый КрабсБургер в Макдоналдсе. Но поскольку он был закрыт, пришлось довольствоваться заказом в бургерной неподалёку. Номер заказа в данном заведении состоит из 6  цифр, и называется счастливым, если сумма первых трех цифр заказа равна сумме вторых трех цифр. Номера заказов не могут начинаться с нуля и идут по возрастанию. Азамат заметил, что номера заказов других людей частично совпадают с его, и вывел маску номера заказа, в которой могут встречаться следующие символы:

– Символ «?» означает ровно одну произвольную цифру;

– Символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.

Найдите количество таких номеров заказов, которые соответсвуют маске ?9  ?7  * и являются счастливыми.

Показать ответ и решение

Решение через циклы

ans = 0
for i in range(1, 10): #число не может начинаться с 0
    for j in range(10):
        for t in range(10):
            for k in range(10):
                s = str(i) + ’9’ + str(j) + ’7’ + str(t) + str(k) # составляем маску числа
                if int(s[0]) + int(s[1]) + int(s[2]) == int(s[3]) + int(s[4]) + int(s[5]): # проверка по условию
                    ans += 1
print(ans)

Решение через fnmatch

from fnmatch import fnmatch # импортимуем fnmatch

count = 0

for x in range(100000,999999+1): # делаем перебор 6-значных чисел
    n = str(x)
    if fnmatch(n,’?9?7*’): # проверяем, что число соответствует маске
        first = n[:3] # первые три цифры числа
        second = n[3:] # вторые три цифры числа
        sm_first = sum(map(int,first)) # сумма первых трёх цифр
        sm_second = sum(map(int,second)) # сумма последних трёх цифр
        if sm_first == sm_second:
            count += 1
print(count)

Ответ: 564

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!