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

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

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

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

а)  если число чет­ное, то к дво­ич­ной за­пи­си числа в конце до­пи­сы­ва­ют­ся 1 и 0;

б)  если число не­чет­ное, то к дво­ич­ной за­пи­си числа в конце до­пи­сы­ва­ет­ся 01.

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

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

Ре­ше­ние.

За­ме­тим, что если число нечётное, то в конец его дво­ич­ной за­пи­си до­бав­ля­ют­ся цифры 01, а если чётное  — цифры 10.

Рас­смот­рим числа, мень­шие 109, и най­дем мак­си­маль­ное число, ко­то­рое яв­ля­ет­ся ре­зуль­та­том ра­бо­ты ал­го­рит­ма.

 

10810  =  110 11002  — не может яв­лять­ся ре­зуль­та­том ра­бо­ты ал­го­рит­ма.

10710  =  110 10112  — не может яв­лять­ся ре­зуль­та­том ра­бо­ты ал­го­рит­ма.

10610  =  110 10102  — яв­ля­ет­ся ре­зуль­та­том ра­бо­ты ал­го­рит­ма.

 

Ответ: 106.

 

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

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

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

s = str(s)

if i % 2 == 0:

s += "10"

else:

s += "01"

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

if r < 109:

print(r)

break

Источник: ЕГЭ по ин­фор­ма­ти­ке 03.07.2020. Ос­нов­ная волна
Раздел кодификатора ФИПИ: 1.6.3 По­стро­е­ние ал­го­рит­мов и прак­ти­че­ские вы­чис­ле­ния