Задания
Версия для печати и копирования в MS Word
Тип 25 № 45259
i

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

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

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

На­при­мер, маске 123*4?5 со­от­вет­ству­ют числа 123405 и 12300405.

Среди на­ту­раль­ных чисел, не пре­вы­ша­ю­щих 109, най­ди­те все числа, со­от­вет­ству­ю­щие маске 12345?7?8, де­ля­щи­е­ся на число 23 без остат­ка.

В от­ве­те за­пи­ши­те в пер­вом столб­це таб­ли­цы все най­ден­ные числа в по­ряд­ке воз­рас­та­ния, а во вто­ром столб­це  — со­от­вет­ству­ю­щие им ре­зуль­та­ты де­ле­ния этих чисел на 23.

Ко­ли­че­ство строк в таб­ли­це для от­ве­та из­бы­точ­но.

Ответ:

Спрятать решение

Ре­ше­ние.

Решим дан­ную за­да­чу ме­то­дом пе­ре­бо­ра. За­ме­тим, что маске «12345?7?8» со­от­вет­ству­ют числа от 123450708 до 123459798. Для каж­до­го числа будем про­ве­рять, что тре­тья спра­ва цифра равна 7 и по­след­няя цифра числа равна 8. Для каж­до­го та­ко­го числа будем про­ве­рять, крат­но ли оно 23, если число крат­но 23  — будем вы­во­дить его на экран, а также ре­зуль­тат де­ле­ния этого числа на 23.

 

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

var

i: longint;

begin

for i := 123450708 to 123460000 do begin

if (((i mod 1000) div 100) = 7) and (i mod 10 = 8) then

if i mod 23 = 0 then writeln(i, ' ', i div 23);

end;

end.

 

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

for i in range(123450708,123460000):

if (i%23==0) and (i%10==8) and ((i//100)%10==7):

print(i, i//23)

 

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

123450798 5367426

123451718 5367466

123453788 5367556

123454708 5367596

123456778 5367686

123459768 5367816

 

При­ведём ре­ше­ние Ва­г­не­ро­ва Ивана на языке Python.

from fnmatch import *

for x in range(0,10**9,23):

if fnmatch(str(x), '12345?7?8'):

print(x, x//23)

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

d = '0123456789'

ans = sorted([int(f'12345{x}7{y}8') for x in d for y in d])

for x in ans:

if x%23==0:

print(x,x//23)


Аналоги к заданию № 45259: 47229 Все

Источник: ЕГЭ по ин­фор­ма­ти­ке 04.04.2022. До­сроч­ная волна