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

Ал­го­ритм по­лу­ча­ет на вход на­ту­раль­ное число N > 1 и стро­ит по нему новое число R сле­ду­ю­щим об­ра­зом:

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

2.  Вме­сто по­след­ней (самой пра­вой) дво­ич­ной цифры два­жды за­пи­сы­ва­ет­ся вто­рая слева цифра дво­ич­ной за­пи­си.

3.  Ре­зуль­тат пе­ре­во­дит­ся в де­ся­тич­ную си­сте­му.

 

При­мер. Дано число N  =  19. Ал­го­ритм ра­бо­та­ет сле­ду­ю­щим об­ра­зом:

1.  Дво­ич­ная за­пись числа N: 10011.

2.  Вто­рая слева цифра 0, еди­ни­ца в конце за­пи­си за­ме­ня­ет­ся на два нуля, новая за­пись: 100100.

3.  Ре­зуль­тат ра­бо­ты ал­го­рит­ма R  =  36.

 

При каком наи­мень­шем числе N в ре­зуль­та­те ра­бо­ты ал­го­рит­ма по­лу­чит­ся R > 92? В от­ве­те за­пи­ши­те это число в де­ся­тич­ной си­сте­ме счис­ле­ния.

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

Ре­ше­ние.

Число на вы­хо­де долж­но пре­вы­шать 9210  =  10111002. За­ме­тим, что можно рас­смат­ри­вать толь­ко те числа, боль­шие 9210, у ко­то­рых в дво­ич­ной за­пи­си на конце стоят либо две еди­ни­цы, либо два нуля. Также за­ме­тим, что для числа 9210 ис­ход­ны­ми чис­ла­ми могли быть либо 1011102, либо 1011112, ни одно из них нам не под­хо­дит, по­сколь­ку после ра­бо­ты ал­го­рит­ма не по­лу­чит­ся числа, боль­ше­го 92. Рас­смот­рим числа 1100002 и 1100012. Пер­вое из них мень­ше, при­ме­ним ал­го­ритм к нему. В ре­зуль­та­те ра­бо­ты ал­го­рит­ма по­лу­чит­ся число 11000112  =  99, что боль­ше 92.

Таким об­ра­зом, ответ  — 1100002  =  4810.

 

Ответ: 48.

 

При­ве­дем дру­гое ре­ше­ние.

За­ме­тим, что в ре­зуль­та­те при­ме­не­ния ал­го­рит­ма к чис­лам, раз­ли­ча­ю­щим­ся толь­ко по­след­ней циф­рой дво­ич­ной за­пи­си, по­лу­ча­ют­ся оди­на­ко­вые ре­зуль­та­ты. В осталь­ных слу­ча­ях боль­шим ис­ход­ным чис­лам со­от­вет­ству­ет боль­ший ре­зуль­тат. Рас­смот­рим числа, боль­шие 9210  =  10111002, и вы­бе­рем наи­мень­шее из них, ко­то­рое может яв­лять­ся ре­зуль­та­том ра­бо­ты ал­го­рит­ма.

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

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

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

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

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

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

9910  =  11000112  — может яв­лять­ся ре­зуль­та­том ра­бо­ты ал­го­рит­ма, может быть по­лу­че­но из числа 1100002  =  4810.

Таким об­ра­зом, ответ  — 1100002  =  4810.

 

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

for n in range(4, 100):

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

s = str(s)

s = s[0:len(s)-1]

s += s[1] * 2

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

if r > 92:

print(n)

break

 

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

for n in range(4,100):

r = bin(n)[2:]

r = r[:-1] + r[1] * 2

r = int(r,2)

if r > 92:

print(n)

break


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

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