На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число в следующим образом.
- Строится двоичная запись числа N.
- Далее эта запись обрабатывается по следующему правилу:
а) если число N чётное, то в этой записи каждая единица заменяется на 11;
б) если число N нечётное, то в этой записи каждый нуль заменяется на 00.
Полученная таким образом запись является двоичной записью искомого числа R. - Результат переводится в десятичную систему и выводится на экран.
Укажите максимальное число N, после обработки которого с помощью этого алгоритма получается число R, меньшее 70, но при этом отличное от самого числа N.
Решение:
Решение на Python:
otv = []
for N in range(200):
N2 = bin(N)[2:]
if N % 2 == 0:
N2 = N2.replace('1', '11')
else:
N2 = N2.replace('0', '00')
R = int(N2, 2)
if R < 70 and R != N:
otv.append(N)
print(max(otv))
Ответ: 29
Ответ:
29