Решение: Максимальное значение R
На вход алгоритма подаётся натуральное число $N$. Алгоритм строит по нему новое число $R$ следующим образом.
1. Строится двоичная запись числа $N$.
2. Далее эта запись обрабатывается по следующему правилу:
а) если число $N$ чётное, то к этой записи справа и слева дописываются по две единицы;
б) если число $N$ нечётное, то в конец двоичной записи (справа) дописываются два нуля, а в начало (слева) дописывается единица.
Полученная таким образом запись (в ней на три или четыре разряда больше, чем в записи исходного числа $N$) является двоичной записью искомого числа $R$.
Например, для исходного числа $13_{10}=1101_2$ результатом является число $1110100_2=116_{10}$, а для исходного числа $6_{10}=110_2$ это число $1111011_2=123_{10}$.
Укажите наибольшее число $R$, не превышающее 55, которое может быть результатом работы данного алгоритма.
Решение по шагам
3 шагаПроверим нечётные значения $N$. Для $N=1$ получаем $1100_2=12_{10}$, для $N=3$ — $11100_2=28_{10}$, для $N=5$ — $110100_2=52_{10}$.
$$5_{10}=101_2\rightarrow 110100_2=52_{10}$$Для следующего нечётного числа $N=7$ результат равен $111100_2=60_{10}$, что больше 55. При больших нечётных $N$ результат также не может уменьшиться.
$$7_{10}=111_2\rightarrow 111100_2=60_{10}>55$$Для наименьшего чётного числа $N=2$ результат равен $111011_2=59_{10}$, поэтому в чётном случае подходящих значений не будет.
$$2_{10}=10_2\rightarrow 111011_2=59_{10}>55$$Где здесь ошибаются
Забывают дописать два нуля справа в случае нечётного числа.
Сравнивают двоичную запись результата с 55 вместо перевода результата в десятичную систему.
Рассматривают только нечётные значения и не проверяют наименьшее чётное число.