Решение: Двоичное представление числа
Ниже на пяти языках программирования записан алгоритм. Получив на вход число $x$, этот алгоритм печатает два числа: $L$ и $M$. Укажите наименьшее число $x$, при вводе которого алгоритм печатает сначала $4$, а потом $6$.
Решение по шагам
4 шагаНа каждой итерации число $x$ заменяется на результат целочисленного деления на $2$. Поэтому количество итераций $M$ равно длине двоичной записи исходного числа.
$$M = 6$$Условие $L = 4$ означает, что в двоичной записи числа должно быть ровно четыре единицы.
Ищем наименьшее шестизначное двоичное число с четырьмя единицами. Чтобы число было минимальным, единицы располагаем как можно правее: $100111_2$.
Переводим число в десятичную систему счисления:
$$100111_2 = 32 + 4 + 2 + 1 = 39$$Где здесь ошибаются
Путать $L$ и $M$: $L$ считает единицы, а $M$ — количество итераций цикла.
Выбирать двоичную запись меньшей длины, например $1111_2$, хотя требуется $M = 6$.
Распределять единицы не в самых младших разрядах и получать не минимальное число.