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

Ав­то­мат об­ра­ба­ты­ва­ет на­ту­раль­ное число N (128 ≤ N ≤ 255) по сле­ду­ю­ще­му ал­го­рит­му.

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

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

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

4.  Из ис­ход­но­го числа вы­чи­та­ет­ся по­лу­чен­ное, раз­ность вы­во­дит­ся на экран.

 

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

1.  Вось­ми­бит­ная дво­ич­ная за­пись числа N: 10000011.

2.  Все цифры за­ме­ня­ют­ся на про­ти­во­по­лож­ные, новая за­пись: 01111100.

3.  Де­ся­тич­ное зна­че­ние по­лу­чен­но­го числа: 124.

4.  На экран вы­во­дит­ся число: 131 – 124  =  7.

 

Какое число нужно вве­сти в ав­то­мат, чтобы в ре­зуль­та­те по­лу­чи­лось 105?

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

Ре­ше­ние.

За­ме­тим, что ин­вер­сия дво­ич­ной вось­ми­бит­ной за­пи­си числа в сумме с ис­ход­ным чис­лом дает 11111111, то есть 255. (В ис­ход­ном при­ме­ре: 10000011 + 01111100  =  11111111.) Сле­до­ва­тель­но, если ис­ход­ное число равно N, то ин­вер­ти­ро­ван­ное число равно 255 − N. Затем ав­то­мат осу­ществ­ля­ет вы­чи­та­ние, вы­чис­ляя 2N − 255.

По­это­му, чтобы найти число, ко­то­рое нужно вве­сти в ав­то­мат для по­лу­че­ния 105, нужно ре­шить урав­не­ние 2N − 255  =  105. Тем самым, ис­ко­мое число равно 180.

 

Ответ: 180.

 

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

for n in range(128, 256):

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

s = str(s)

s = s.replace('1', '*')

s = s.replace('0', '1')

s = s.replace('*', '0')

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

if n - r == 105:

print(n)


Аналоги к заданию № 16809: 16882 28681 29113 Все

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