OpenFIPI 2.0
8BD535
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 10;
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.
Полученная таким образом запись является двоичной записью искомого числа R.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 610 = 1102 результатом является число 10002 = 810, а для исходного числа 410 = 1002 это число 11012 = 1310.
Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, большее 19. В ответе запишите это число в десятичной системе счисления.
РедактироватьОтветы
8
10
14
23
10
8
5
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))
32
10
9
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))
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))
4
6
8
8
8
10
8