Анализ алгоритма деления
Ниже на пяти языках программирования записан алгоритм. Получив на вход число $x$, этот алгоритм печатает два числа: $L$ и $M$. Алгоритм повторяет действия, пока $x > 0$: увеличивает $M$ на 1, увеличивает $L$ на 1, если текущее значение $x$ чётное, затем заменяет $x$ на результат целочисленного деления на 2. Найдите наименьшее число $x$, при вводе которого алгоритм печатает сначала 6, а потом 7.
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)
Условие как в банке ФИПИ — открыть и сверить
| Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 6, а потом 7.
| ||||||||||
| |
Формат: число или слово без единиц измерения; дробную часть отделяйте запятой.
1Мягкая — с чего смотретьуровень 1 из 3
Сколько раз выполняется цикл для числа с определённой длиной двоичной записи?
2Наводящая — какие числа считатьуровень 2 из 3
При последовательном делении на 2 число итераций равно количеству цифр в двоичной записи числа.
3Прямая — фактически решениеуровень 3 из 3
Нужно получить 7 итераций и ровно 6 чётных значений $x$. Минимальное подходящее число — $1000000_2 = 64$.