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

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

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

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

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

б)  к этой за­пи­си спра­ва до­пи­сы­ва­ет­ся 1, если оста­ток от де­ле­ния ко­ли­че­ства еди­ниц на 2 равен 0, и 0, если оста­ток от де­ле­ния ко­ли­че­ства еди­ниц на 2 равен 1.

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

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

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

Ре­ше­ние.

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

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

5610  =  1110002  — может яв­лять­ся ре­зуль­та­том ра­бо­ты ал­го­рит­ма.

 

Ответ: 56.

 

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

for n in range(1, 100):

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

s = str(s)

if s.count('1') % 2 == 0:

s += '1'

else:

s += '0'

if s.count('1') % 2 == 0:

s += '1'

elif s.count('1') % 2 == 1:

s += '0'

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

if r > 54:

print(r)

break

 

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

for n in range(1,100):

r = bin(n)[2:]

r = r + str(1 - r.count("1") % 2)

r = r + str(1 - r.count("1") % 2)

r = int(r,2)

if r > 54:

print(r)

break

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