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

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

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

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

Сколько существует натуральных чисел, соответствующих следующей маске 90?123?  и чтобы число десятков, сложенное с учетверенным число единиц, было кратно 13  (то есть для числа 23  это 3∗ 4+ 2  ). В ответ запишите количество найденных чисел.

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

counter = 0
for a1 in (’0123456789’):
    for a2 in (’0123456789’):
        s = int(’90’+a1+’123’+a2) # составляем число, удовлетворяющее маске
        n = 3+int(a2)*4 # считаем сумму десятков и 4*единиц
        if n%13==0:
            counter += 1
print(counter)

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

count = 0
for x in range(9001230,9091239+1):
    n = str(x)
    # проверяем, что число соответствует маске и сумма десятков и 4*единиц кратно 13
    if ’90’ in n[:2] and ’123’ in n[3:6] and (int(n[-2]) + 4*int(n[-1])) % 13 == 0:
        count += 1
print(count)

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