Яуже час сижу и не могу понять, как решать это (с подробным и понятным объяснением) на вход алгоритма подаётся натуральное число n. алгоритм строит по нему новое число r следующим образом. 1) строится двоичная запись числа n. 2) к этой записи дописываются справа ещё два разряда по следующему правилу: а) в конец числа (справа) дописывается 1, если число единиц в двоичной записи числа чётно, и 0, если число единиц в двоичной записи числа нечётно. б) к этой записи справа дописывается остаток от деления количества единиц на 2. полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа n) является двоичной записью искомого числа r. укажите минимальное число r, которое превышает 31 и может являться результатом работы алгоритма. в ответе это число запишите в десятичной системе.
1) первое число, превышающее число 31, это число 32
2) 32 (10сс) =10 0000 (2сс) =(1000) 00 - не подходит, так как в 1000 число единиц нечётно и далее должна стоять 1, а у нас 0
3) 10 0001 - не подходит по той же причине
4) 10 0010 (2сс)= (1000)10=32+2=34 (10сс) ответ 34
Правило а) в конец числа (справа) дописывается 1, если число единиц в двоичной записи числа чётно, и 0, если число единиц в двоичной записи числа нечётно. Правило а) приведет к тому, что число единиц станет нечетным в любом случае.
Правило б) к этой записи справа дописывается остаток от деления количества единиц на 2. После правила а) число единиц нечетное, поэтому дописываться всегда будет единица. Это, в свою очередь, означает, что все число будет нечетным и в десятичной системе, а общее число единиц в двоичной записи будет четным.
Число R по условию превышает 31₁₀=11111₂ и должно быть нечетным.
Будем последовательно проверять все нечетные числа, начиная от 100001₂.
100001 может быть результатом работы алгоритма, т.е. число единиц в нем четное и оно завершается единицей.
В самом деле, если N₂=1000, то по правилу а) получаем 10000, а по правилу б) получаем 100001.
Итак, N₂=100001₂=2⁵+2⁰=32+1=33₁₀
ответ: 33