Укажите максимальное число N, для которого результат работы алгоритма
Условие
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число следующим образом.
-
Строится двоичная запись числа N.
-
К этой записи дописываются справа ещё два разряда по следующему правилу: если N чётное, в конец числа (справа) дописываются два нуля, в противном случае справа дописываются две единицы. Например, двоичная запись 1001 числа 9 будет преобразована в 100111.Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью числа — результата работы данного алгоритма.
Укажите максимальное число N, для которого результат работы алгоритма будет меньше 134. В ответе это число запишите в десятичной системе счисления.
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Заметим, что если число чётное, то в конец его двоичной записи добавляются цифры 00, а если нечётное — цифры 11.Рассмотрим числа, меньшие 134, и найдем максимальное число, которое является результатом работы алгоритма. 133₁₀ = 1000 0101₂ — не может являться результатом работы алгоритма.132₁₀ = 1000 0100₂ — не может являться результатом работы алгоритма.131₁₀ = 1000 0011₂ — не может являться результатом работы алгоритма.130₁₀ = 1000 0010₂ — не может являться результатом работы алгоритма.129₁₀ = 1000 0001₂ — не может являться результатом работы алгоритма.128₁₀ = 1000 0000₂ — может являться результатом работы алгоритма. Выполним обратное преобразование числа 128 согласно алгоритму. Получим ответ —
Осталось ещё 2 шага
Приведём другое решение на языке Python. for…
# перевод в десятичную систему if r <…
Бесплатно · займёт минуту