Алгоритм получает на вход натуральное число 1 » class=»math» src=»/images/inform/quest/quest-3229-1.svg» width=»auto»> и строит по нему новое число R следующим образом:
1. Строится двоичная запись числа .
2. Вместо последней (самой правой) двоичной цифры дважды записывается вторая слева цифра двоичной записи.
3. Результат переводится в десятичную систему.
Пример. Дано число . Алгоритм работает следующим образом:
1. Двоичная запись числа .
2. Вторая слева цифра , единица в конце записи заменяется на два нуля, новая запись
.
3. Результат работы алгоритма .
При каком наименьшем числе в результате работы алгоритма получится
48 » class=»math» src=»/images/inform/quest/quest-3229-9.svg» width=»auto»>? В ответе запишите это число в десятичной системе счисления.
Решение №1
Переведем . Не совпадают.
Переведем . Не совпадают.
Переведем . Совпали. Обрубим
последние цифры и припишем
.
.
Решение №2
for i in range(6, 1000):
s = bin(i)[2::]
s = s[:len(s) - 1]
s += s[1] * 2
if int(s, 2) > 48:
print(i)
break