Задание 5. Информатика. ЕГЭ 2024. Пересдача. 04.07.2024
- Просмотры: 188
- Изменено: 24 ноября 2024
На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится двоичная запись числа \(N\).
- Далее эта запись обрабатывается по следующему правилу:
a) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(0\), а затем два левых разряда заменяются на \(10\);
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается \(1\), а затем два левых разряда заменяются на \(11\).
Полученная таким образом запись является двоичной записью искомого числа \(R\). - Результат переводится в десятичную запись и выводится на экран.
Например, для исходного числа \(6_{10} = 110_2\) результатом является число \(8_{10} = 1000_2\), а для исходного числа \(4_{10} = 100_2\) это число \(13_{10} = 1101_2\).
Укажите минимальное число \(R\), которое может быть результатом работы данного алгоритма, при условии, что \(N\) больше \(27\). В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = bin(N)[2:]
if bn.count('1') % 2 == 0:
t = '10' + bn[2:] + '0'
else:
t = '11' + bn[2:] + '1'
return int(t, base=2)
a = [R(N) for N in range(28, 1000)]
print(min(a))
Ответ: \(42\)