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

На вход ал­го­рит­ма подаётся на­ту­раль­ное число N. Ал­го­ритм стро­ит по нему новое число R сле­ду­ю­щим об­ра­зом.

 

1.  Стро­ит­ся дво­ич­ная за­пись числа N.

2.  Далее эта за­пись об­ра­ба­ты­ва­ет­ся по сле­ду­ю­ще­му пра­ви­лу:

а)  если число N крат­но 3, тогда в конец до­пи­сы­ва­ет­ся три млад­ших раз­ря­да по­лу­чен­ной дво­ич­ной за­пи­си;

б)  если число N не крат­но 3, тогда в конец до­пи­сы­ва­ет­ся дво­ич­ная по­сле­до­ва­тель­ность, яв­ля­ю­ща­я­ся ре­зуль­та­том умно­же­ния 3 на оста­ток от де­ле­ния числа N на 3.

По­лу­чен­ная таким об­ра­зом за­пись яв­ля­ет­ся дво­ич­ной за­пи­сью ис­ко­мо­го числа R.

На­при­мер, для ис­ход­но­го числа 510  =  1012 ре­зуль­та­том яв­ля­ет­ся число 1011102  =  4610, а для ис­ход­но­го числа 910  =  10012 ре­зуль­та­том яв­ля­ет­ся число 10010012  =  7310.

 

Ука­жи­те наи­боль­шее число N, после об­ра­бот­ки ко­то­ро­го с по­мо­щью этого ал­го­рит­ма по­лу­ча­ет­ся число R, мень­шее 100. В от­ве­те за­пи­ши­те это число в де­ся­тич­ной си­сте­ме счис­ле­ния.

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

Ре­ше­ние.

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

for i in range(100, 0, -1):

s = bin(i)[2:] # пе­ре­вод в дво­ич­ную си­сте­му

s = str(s)

if i % 3 == 0:

s += s[-3:]

else:

s += bin(3*(i%3))[2:]

r = int(s, 2) # пе­ре­вод в де­ся­тич­ную си­сте­му

if r < 100:

print(i)

break

 

Ответ: 22.

 

При­ведём ре­ше­ние Ев­ге­ния Дж­об­са (ана­ли­ти­че­ское).

Для ана­ли­ти­че­ско­го рас­суж­де­ния имеем два слу­чая.

 

Слу­чай 1.  Число крат­но 3. Сле­до­ва­тель­но, число уве­ли­чи­ва­ет­ся в 8 раз (три дво­ич­ных раз­ря­да) и к нему до­пи­сы­ва­ет­ся зна­че­ние до 7 (от 000 до 111).

100 // 8  =  12 (//  — це­ло­чис­лен­ное де­ле­ние),

знаем, что 12 де­лит­ся на 3. Про­ве­ря­ем по ал­го­рит­му:

1210  =  11002 → 11001002 → 10010.

Сле­до­ва­тель­но, число 12 не удо­вле­тво­ря­ет усло­вию. Про­ве­рим преды­ду­щее, крат­ное 3 (9):

910  =  10012  =  10010012  =  7310.

Сле­до­ва­тель­но, число 9  — по­след­нее число, крат­ное 3, после об­ра­бот­ки ко­то­ро­го ис­пол­ни­тель по­лу­чит зна­че­ние, мень­шее 100.

 

Слу­чай 2.  Число не крат­но 3. Для этого слу­чая имеем два ва­ри­ан­та  — оста­ток равен 1 и оста­ток равен 2. В пер­вом слу­чае до­пи­сы­ва­ет­ся 112 (1 · 3), во вто­ром  — 1102 (2 · 3).

Оста­ток равен 2.

До­пи­сы­ва­ет­ся три раз­ря­да, сле­до­ва­тель­но, число уве­ли­чи­ва­ет­ся по фор­му­ле 8 · x + 6. Зна­чит, нужно взять число, мень­шее 12, оста­ток от де­ле­ния ко­то­ро­го на 3 равен 2. Это число 11. Тогда: 11 · 8 + 6  =  94. Сле­до­ва­тель­но, наи­боль­шее число, оста­ток ко­то­ро­го при де­ле­нии на 3 равен 2, пре­об­ра­зу­е­мое ис­пол­ни­те­лем в число, мень­шее 100, равно 11.

Оста­ток равен 1.

До­пи­сы­ва­ет­ся два раз­ря­да. Сле­до­ва­тель­но, число уве­ли­чи­ва­ет­ся по фор­му­ле 4 · х + 3. Най­дем мак­си­маль­ное число, ко­то­рое может удо­вле­тво­рять усло­вию:

100 // 4  =  25, 25 % 3  =  1 (оста­ток от де­ле­ния),

тогда 25 · 4 + 3  =  103 (не под­хо­дит).

Берем преды­ду­щее с таким же остат­ком: 22 · 4 + 3  =  91. Сле­до­ва­тель­но, 22  — наи­боль­шее число, оста­ток от де­ле­ния на 3 у ко­то­ро­го равен 1 и ре­зуль­тат об­ра­бот­ки ис­пол­ни­те­лем ко­то­ро­го будет мень­ше 100.

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