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

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

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

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

3.  Преды­ду­щий пункт по­вто­ря­ет­ся для за­пи­си с до­бав­лен­ной циф­рой.

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

 

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

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

2.  Сумма цифр дво­ич­ной за­пи­си  — 3, оста­ток от де­ле­ния на 2 равен 1, новая за­пись: 11011.

3.  Сумма цифр по­лу­чен­ной за­пи­си  — 4, оста­ток от де­ле­ния на 2 равен 0, новая за­пись: 110110.

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

 

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

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

Ре­ше­ние.

Если из­на­чаль­но сумма раз­ря­дов была чётная, то в конец за­пи­шет­ся 00, что эк­ви­ва­лент­но N arrow N умно­жить на 4.

Если же сумма была нечётная, то за­пи­шет­ся 10, что эк­ви­ва­лент­но N arrow N умно­жить на 4 плюс 2.

В обоих слу­ча­ях число по­лу­ча­ет­ся чётным.

 

По­смот­рим на чётные числа, пре­вос­хо­дя­щие 170.

172_10 = 10101100_2  — на конце 00, но сумма осталь­ных раз­ря­дов чётна. Число под­хо­дит под пер­вый слу­чай, зна­чит, число, из ко­то­ро­го оно было по­лу­че­но, равно  дробь: чис­ли­тель: 172, зна­ме­на­тель: 4 конец дроби = 43.

 

Ответ: 43.

 

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

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

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

s = str(s)

s += str(s.count("1") % 2)

s += str(s.count("1") % 2)

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

if r > 170:

print(n)

break


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

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