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

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

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

2.  В конец дво­ич­ной за­пи­си до­бав­ля­ют­ся две пер­вые цифры этой за­пи­си в об­рат­ном по­ряд­ке.

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

 

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

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

2.  В конец за­пи­си до­бав­ля­ют­ся цифры 01  — пер­вые две цифры в об­рат­ном по­ряд­ке (сна­ча­ла вто­рая, затем пер­вая), по­лу­ча­ет­ся 101101.

3.  На экран вы­во­дит­ся число 45.

 

При каком наи­мень­шем ис­ход­ном N ре­зуль­тат на экра­не ав­то­ма­та будет боль­ше 90?

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

Ре­ше­ние.

Число на вы­хо­де долж­но пре­вы­шать 9010  =  10110102, тогда ис­ход­ное число N долж­но быть боль­ше или равно 101102  =  2210.

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

2210  =  101102, ре­зуль­та­том ра­бо­ты ал­го­рит­ма будет число 10110012  =  8910, что мень­ше 90;

2310  =  101112, ре­зуль­та­том ра­бо­ты ал­го­рит­ма будет число 10111012  =  9310, что под­хо­дит под усло­вие.

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

 

Ответ: 23.

 

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

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

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

s = str(s)

s += s[1] + s[0]

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

if r > 90:

print(n)

break

 

При­ведём ре­ше­ние Ильи Ан­дри­а­но­ва на языке Python.

for n in range(1, 10000):

s = f'{n:b}'

s += s[::-1][:2]

r = int(s, 2)

if r > 90:

print(n)

break

 

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

for N in range(1, 5000):

n2 = f'{N:b}'

if len(n2) < 2:

n2 = n2.zfill(4)

n2 = n2 + n2[1] + n2[0]

else:

n2 = n2 + n2[1] + n2[0]

r = int(n2, 2)

if r > 90:

print(N)

break


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

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