OpenFIPI 2.0
5
5
8BD535
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 10;
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.
Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 610 = 1102 результатом является число 10002 = 810, а для исходного числа 410 = 1002 это число 11012 = 1310.
Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, большее 19. В ответе запишите это число в десятичной системе счисления.
8
res=[]
for n in range(1000):
s=bin(n)[2:]
if s.count('1')%2==0:
s=s+'0'
s='10'+s[2:]
else:
s=s+'1'
s='11'+s[2:]
r=int(s,2)
if r>19:
res.append(n)
print(min(res))
Просмотреть отправленные ответы 8BD535