Задача к ЕГЭ по информатике на тему «Маски» №1

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

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

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

Среди натуральных чисел, не превышающих 106  , найдите все числа, соответствующие маске 8  ?321  ? и делящиеся на 5  без остатка. В ответе запишите количество найденных чисел

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

ans = 0
for x in range(10):
    for i in [0, 5]:
        #любое число, оканчивающееся на 0 или 5, делится на 5
        ans += 1
print(ans)

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

count = 0
for x in range(803210,10**6+1,5): # для оптимизации делаем цикл с шагом 5 с числа кратного 5, таким образом, мы будем проходиться только по кратным 5 числам
    n = str(x)
    if n[0] == ’8’ and ’321’ in n[2:5]: # проверка, что число удовлетворяет маске
        count += 1
print(count)

Ответ: 20
Оцените статью
Я решу все!