Решение: Обработка двоичной записи числа
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$ следующим образом.
1. Строится двоичная запись числа $N$.
2. Далее эта запись обрабатывается по следующему правилу:
а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 10;
б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.
Полученная таким образом запись является двоичной записью искомого числа $R$.
3. Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа $6_{10}=110_2$ результатом является число $1000_2=8_{10}$, а для исходного числа $4_{10}=100_2$ это число $1101_2=13_{10}$.
Укажите максимальное число $N$, после обработки которого с помощью этого алгоритма получается число $R$, меньшее 20. В ответе запишите это число в десятичной системе счисления.
Решение по шагам
7 шаговЧисла $N$ с двоичной записью длины не более трёх не превосходят 7, поэтому для поиска максимального ответа достаточно рассмотреть четырёхразрядные числа от 8 до 15.
Для $N=8$ имеем $1000_2$. Сумма цифр чётная, поэтому после дописывания нуля и замены двух левых разрядов получаем $10000_2=16$.
Для $N=9$ имеем $1001_2$. Сумма цифр чётная, поэтому получаем $10010_2=18$.
Для $N=10$ имеем $1010_2$. Сумма цифр чётная, поэтому получаем $10000_2=16$.
Для $N=11$ имеем $1011_2$. Сумма цифр нечётная, поэтому получаем $10111_2=23$, что не подходит.
Для $N=12$ имеем $1100_2$. Сумма цифр чётная, поэтому получаем $10000_2=16$, что меньше 20.
Для больших чисел: $N=13$ даёт $11011_2=27$, $N=14$ даёт $10100_2=20$, $N=15$ даёт $11111_2=31$. Они не подходят.
Где здесь ошибаются
Забывают сначала дописать справа цифру, а затем заменять два левых разряда.
Проверяют только значение двоичной записи, не учитывая чётность суммы её цифр.
Считают число 14 подходящим, хотя результат равен 20, а требуется строго меньше 20.