Перебор без ошибок · тема 2 из 8
Двоичный алгоритм шаг за шагом
Алгоритмы · ЕГЭ 5
Одна идея — один пример
bin(n)[2:] убирает префикс 0b. int(s, 2) превращает двоичную строку обратно в число. Изменять строку и число — разные операции.
s = bin(6)[2:]
print(s + "1")
Теперь решаем самостоятельно
Перебор начинается с минимального допустимого N. Останавливайся на первом подходящем только если именно N минимизируется.
Вводится t (0 ≤ t ≤ 100). К двоичной записи положительного N справа приписывают 1, получая R. Найди минимальное N, для которого R > t.
Пример входных данных и результата
Ввод:
10
Вывод:
5
Черновик и файл программы
Черновик сохраняется в этом браузере. Ctrl/⌘ + S — сохранить.
Результаты проверки
Напиши решение и нажми «Проверить код». Данные каждого теста подаются автоматически.
Нужна подсказка?
Приписывание одного бита: R = 2N + 1. Можно проверить ответ этой формулой.
На чём легко ошибиться
Строго больше — это >, а не >=.
Разобрать один из способов решения
Сначала попробуй написать код сам. Сравни алгоритм, затем закрой разбор и воспроизведи решение без подсказки.
t = int(input())
for n in range(1, 102):
r = int(bin(n)[2:] + "1", 2)
if r > t:
print(n)
breakТесты проверяют результат на учебных примерах, но не доказывают правильность для любого входа. Объясни каждую строку и предложи собственный тест.
Перед следующей темой
Назови входные данные, результат, основной шаг алгоритма и граничный случай. Если использовал разбор, напиши решение заново. Для свободных экспериментов открой Python онлайн.
Все темы этого курса
Программа подготовлена по темам банка «Академии С». Официальные документы: ФИПИ. Справочник языка: Python. Не все экзаменационные задачи нужно решать программой: например, работа в таблицах требует освоения табличного редактора.