Шешімі: Минимальное число по двоичной жазбалар
Ниже на пяти языках программирования записан алгоритм. Получив на вход число $x$, этот алгоритм печатает два числа: $L$ и $M$. Укажите наименьшее число $x$, при вводе которого алгоритм печатает сначала 5, а потом 9.
Шешімін қадамдап көрсету
4 қадамНа каждой итерации значение $x$ целочисленно делится на 2, поэтому цикл выполняется столько раз, сколько разрядов в двоичной записи исходного числа. Следовательно, $M=9$ означает, что число должно иметь 9 двоичных разрядов.
$$M=9$$Увеличение $L$ происходит тогда и только тогда, когда очередной остаток от деления на 2 равен 1. Поэтому $L$ — количество единиц в двоичной записи числа.
$$L=5$$Чтобы 9-разрядное число было наименьшим, его старший разряд должен быть единицей, а остальные четыре единицы нужно расположить как можно правее.
$$x=100001111_2$$Переведём число в десятичную систему счисления.
$$x=2^8+2^3+2^2+2^1+2^0=256+8+4+2+1=271$$Где здесь ошибаются
Путать $L$ и $M$: $L$ считает единицы двоичной жазбалар, а $M$ — её длину.
Расположить единицы слева и получить не минимальное, а большее число.
Забыть, что старший разряд 9-разрядного числа обязательно равен единице.