РУҚА
22

Решение: Максимальное число по алгоритму

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

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

Python
1x = int(input())
2L = 0
3M = 0
4while x > 0:
5    M = M + 1
6    if x % 2 != 0:
7        L = L + 1
8    x = x // 2
9print(L)
10print(M)
Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

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

3 шага
1

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

$$M=6$$
2

Увеличение $L$ происходит тогда и только тогда, когда очередной остаток от деления на 2 равен 1. Значит, $L$ равно количеству единиц в двоичной записи числа.

$$L=3$$

Искомое число должно иметь шесть двоичных разрядов и ровно три единицы. Наибольшее такое число получается, если единицы стоят в старших разрядах.

$$111000_2=32+16+8=56$$
Ответ
56
56
так ответ выглядит в бланке

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

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

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

Расположить три единицы не в старших разрядах и получить не最大альное число.

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

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

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

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