Вопрос:

Задание 5 (№24223). На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1. Строится двоичная запись числа N. 2. Далее эта запись обрабатывается по следующему правилу: а) если число N нечетное, то в двоичной записи первый и последний бит меняются местами и в конец дописывается 1; б) если число N четное, то в конец двоичной записи дописывается 0 Полученная таким образом запись является двоичной записью искомого числа R. 3. Результат переводится в десятичную систему и выводится на экран. Например, для исходного числа 11<sub>10</sub> = 1011<sub>2</sub> результатом является число 10111<sub>2</sub> = 23<sub>10</sub>, а для исходного числа 18<sub>10</sub> = 10010<sub>2</sub> это число 100100<sub>2</sub> = 36<sub>10</sub>. Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, не меньшее 50.

Ответ:

Решение:

Алгоритм состоит из следующих шагов:

  1. Двоичная запись числа N.
  2. Обработка двоичной записи:
    • Если N нечетное: поменять местами первый и последний биты, дописать '1'.
    • Если N четное: дописать '0'.
  3. Полученная запись — двоичная запись числа R.
  4. Перевод R в десятичную систему.

Требуется найти минимальное N, такое что R ≥ 50.

Рассмотрим возможные варианты получения R ≥ 50. Переведем 5010 в двоичную систему: \( 50 = 32 + 16 + 2 = 2^5 + 2^4 + 2^1 \). Значит, \( 50_{10} = 110010_2 \).

Проверим несколько чисел, начиная с самых малых, которые могут дать результат R ≥ 50.

Случай 1: N — четное.

Двоичная запись N заканчивается на 0. По правилу б) к ней дописывается 0. Если R = 1100102 (5010), то N было 110012. \( 11001_2 = 16 + 8 + 1 = 25_{10} \). Это четное число, значит, R = 1100102. Минимальное N, дающее R=50, равно 25.

Случай 2: N — нечетное.

Двоичная запись N заканчивается на 1. По правилу а) первый и последний биты меняются местами, и дописывается 1. Если R = 1100102 (5010), то последняя цифра R должна быть 1, что не выполняется. Значит, R не может быть в точности 50, если N нечетное.

Рассмотрим числа R > 50.

Вариант 1: N — четное.

Если R = 1100112 = 5110. Последний бит R — 1. Этого не может быть, если N четное, т.к. приписывается 0.

Если R = 1101002 = 5210. Тогда N = 110102. \( 11010_2 = 16 + 8 + 2 = 26_{10} \). Это четное число. R = 1101002. N=26.

Если R = 1110002 = 5610. Тогда N = 111002. \( 11100_2 = 16 + 8 + 4 = 28_{10} \). Это четное число. R = 1110002. N=28.

Вариант 2: N — нечетное.

Если R = 1100112 = 5110. Последний бит R — 1. Это подходит для нечетного N. В этом случае, чтобы получить 1100112, исходная запись N была 110012, первый и последний бит поменялись местами (1 и 1), а в конце дописали 1. Исходная двоичная запись была 110012. \( 11001_2 = 16 + 8 + 1 = 25_{10} \). Это нечетное число. После обработки: меняем первый и последний бит (1 и 1 остаются на месте), дописываем 1. Получаем 1100112 = 5110. N = 25.

Сравниваем полученные значения N: 25 (четное, R=50), 26 (четное, R=52), 28 (четное, R=56), 25 (нечетное, R=51).

Минимальное N, дающее R ≥ 50, равно 25.

Ответ: 25