Алгоритм состоит из следующих шагов:
Требуется найти минимальное 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