OpenFIPI 2.0

Текст задания

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

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

2. Далее эта запись обрабатывается по следующему правилу:

а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 10;

б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.

Полученная таким образом запись является двоичной записью искомого числа R.

3. Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 610 = 1102 результатом является число 10002 = 810, а для исходного числа 410 = 1002 это число 11012 = 1310.

Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, большее 19. В ответе запишите это число в десятичной системе счисления.

Ответы пользователей 22

Пользователь
1
8
Пользователь
2
10
Пользователь
3
14
Пользователь
4
23
Пользователь
5
10
Пользователь
6
8
Пользователь
7
5
Пользователь
8
for i in range(19, 200): n=bin(i)[2:] if ((len(n)-n.count("0"))%2==0): n +="0" n = "10"+n[2:] else: n +="1" n = "11"+n[2:] print(int(n, 2))
Пользователь
9
32
Пользователь
10
10
Пользователь
11
9
Пользователь
12
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))
Пользователь
13
8
Пользователь
14
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))
Пользователь
15
4
Пользователь
16
6
Пользователь
17
8
Пользователь
18
8
Пользователь
19
8
Пользователь
20
10
Пользователь
21
8
Пользователь
22
10