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

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

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

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

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

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

 

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

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

2.  Вто­рая спра­ва цифра 0, новая за­пись: 11010.

3.  Вто­рая слева цифра 1, новая за­пись: 110101.

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

 

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

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

Ре­ше­ние.

Число на вы­хо­де долж­но пре­вы­шать 15010  =  100101102, тогда ис­ход­ное число N долж­но быть боль­ше или равно 1001012  =  3710.

Рас­смот­рим числа N, боль­шие или рав­ные 37, и опре­де­лим наи­мень­шее из них, при ко­то­ром ре­зуль­тат на экра­не ав­то­ма­та будет боль­ше 150:

3710  =  1001012, ре­зуль­та­том ра­бо­ты ал­го­рит­ма будет число 100101002  =  14810, что мень­ше 150;

3810  =  1001102, ре­зуль­та­том ра­бо­ты ал­го­рит­ма будет число 100110102  =  15410, что под­хо­дит под усло­вие.

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

 

Ответ: 38.

 

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

for n in range(2, 100): # на­чи­на­ем с 2, так как число 1 имеет толь­ко одну цифру

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

s = str(s)

s += s[-2]

s += s[1]

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

if r > 150:

print(n)

break


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

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