πЕГЭ · ИИ-репетитор12 предметов · задания ФИПИ
Главная → Информатика → Задания №25 → Задание i25-02

Задание №25 ЕГЭ Информатика с ответом и решением

Ответ: 1349341 1249338041 1549348941 1849359841

Условие

Маска числа — это последовательность цифр, в которой могут встречаться специальные символы «?» и «*». Символ «?» означает ровно одну произвольную цифру, символ «*» означает произвольную (в том числе пустую) последовательность цифр.

Пример. Маске 123*4?5 соответствуют числа 123 405 и 12 376 415.

Найдите все натуральные числа, не превышающие 1010, которые соответствуют маске 1?493*41 и при этом без остатка делятся на 2023. В ответе запишите все найденные числа в порядке возрастания.

Подсказки — как подойти к решению

  1. Проверять делимость каждого числа по отдельности не обязательно: перебирай числа с шагом, равным делителю, тогда все кандидаты уже кратны ему, и останется только сверить число с маской.
  2. Маску читай буквально: «?» — ровно одна цифра, «*» — любая последовательность цифр, и она вполне может оказаться пустой. Из-за ограничения из условия число разрядов у кандидатов различается, поэтому проверяй маску для каждой длины отдельно.
  3. Полученный список перед выводом отсортируй: если ты строил числа вложенными циклами по цифрам, порядок окажется произвольным, а условие требует расположить числа по возрастанию.

Решение

Приведём решение на языке Python.

from fnmatch import *

for x in range (0, 10**10, 2023):

if fnmatch(str(x),'1?493*41'):

print(x)

В результате работы программа должна вывести следующее:

1349341

1249338041

1549348941

1849359841

Приведём программу Владимира Лукьянчикова на PascalABC:

var i, k : int64; st : string;

begin

i := 1147041;

while i < 10000000000 do begin

st := i.ToString;

if (st[1] = '1') and (st[3:6] = '493') then println(i);

i := i + 202300;

end;

end.

Ответ: 1349341&1249338041&1549348941&1849359841

Типичные ошибки

Решить это задание в тренажёре

В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №25 по информатике