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

25.03 Маски

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

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

Задача 1#64075

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

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

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

Например, маске 123∗4?5  соответствуют числа 123495  и 12335495  .

Среди натуральных чисел, не превышающих 108  , найдите все числа, делящиеся на 394 и соответствующие маске ∗562??90  , но не соответствующие маске ?3 ∗7  .

Для каждого найденного числа в ответе укажите само число, а затем, через пробел, частное от деления на 394. Пары друг от друга так же отделите пробелом. Пары должны идти в порядке возрастания найденного числа.

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

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

import fnmatch
# для оптимизации делаем цикл с шагом 394, начиная с числа кратного 394, для того чтобы проходиться по числам кратным 394
for x in range(394,10**8,394):
    if fnmatch.fnmatch(str(x), ’*562??90’) and not fnmatch.fnmatch(str(x), ’?3*7’): # проверка, что число удовлетворяет одной маске и не удовлетворяет другой маске
        print(x, x//394)

Решение через срезы

# для оптимизации делаем цикл с шагом 394, начиная с числа кратного 394, для того чтобы проходиться по числам кратным 394
for x in range(5620410,10**8+1,394): #
    n = str(x)
    if ’562’ in n[-7:-4] and ’90’ in n[-2:]: # проверка, что число удовлетворяет маске
        if n[1] != ’3’ and n[-1] != ’7’: # проверка, что число не удовлетворяет маске
            print(x,x//394)

Ответ: 5628290 14285 25623790 65035 55626890 141185 75622390 191935 85629990 217335

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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