22

Решение: Подсчёт единиц в двоичной записи

ЕГЭ · Информатика · Задание 22 · Алгоритмы и исполнители
ПовышеннаяФИПИ616B25Короткий ответ≈ 4 минутыРазбор в 4 шагаОтвет сверен с ключом
Условие

Ниже на четырёх языках программирования записан алгоритм. Получив на вход число $x$, этот алгоритм печатает два числа: $L$ и $M$. Укажите наибольшее число $x$, при вводе которого алгоритм печатает сначала 5, а потом 8.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

4 шага
1

На каждой итерации число $x$ целочисленно делится на 2, поэтому цикл выполняется столько раз, сколько разрядов в двоичной записи исходного числа. Следовательно, $M$ равно длине двоичной записи.

2

Условие $x \bmod 2 \ne 0$ выполняется для нечётных промежуточных значений, то есть для единичных разрядов двоичной записи. Поэтому $L$ равно количеству единиц.

3

Требуется восьмиразрядное двоичное число с пятью единицами. Наибольшее такое число получают, размещая единицы в старших разрядах: $11111000_2$.

Переведём число в десятичную систему: $1\cdot2^7+1\cdot2^6+1\cdot2^5+1\cdot2^4+1\cdot2^3=128+64+32+16+8=248$.

Ответ
248
248
так ответ выглядит в бланке

Где здесь ошибаются

Путают количество итераций цикла с количеством единиц в двоичной записи.

Выбирают восьмиразрядное число с пятью единицами, но размещают единицы не в старших разрядах.

Забывают, что ведущие нули не учитываются в длине двоичной записи.

Закрепить приёмВ теме «Алгоритмы и исполнители» ещё 431 задача — с ответом и таким же разбором.
Тренироваться

Как решать задание 22 ЕГЭ, информатика

Разбор этой задачи разложен на 4 шага: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Алгоритмы и исполнители»: в ней 432 задачи, и у каждой есть такой же разбор. Регистрация не нужна.