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

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

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

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

а)  если сумма не­чет­ная, к числу до­пи­сы­ва­ет­ся 11,

б)  если сумма чет­ная, до­пи­сы­ва­ет­ся 00.

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

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

Ре­ше­ние.

Пе­ре­ве­дем число 11410 в дво­ич­ную си­сте­му: 11410  =  111 00102. От­сю­да узна­ем число на входе  — 111002. Сле­дуя ал­го­рит­му, нужно про­ве­рить чет­ность еди­ниц. Ко­ли­че­ство еди­ниц не­чет­но, сле­до­ва­тель­но, нужно до­ба­вить две еди­ни­цы. По­лу­ча­ем число 115, оно и яв­ля­ет­ся от­ве­том, так как оно боль­ше 114 и наи­мень­шее из воз­мож­ных.

 

Ответ: 115.

 

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

for n in range(1, 100):

summa = 0

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

s = str(s)

for i in range(len(s)):

summa += int(s[i])

if summa % 2 != 0:

s += "11"

else:

s += "00"

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

if r > 114:

print(r)

break

 

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

for n in range(1,1000):

r = bin(n)[2:]

r += "11" if (r.count("1") % 2 == 1) else "00"

if (int(r,2)) > 114:

print(int(r,2))

break

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