alarm
Задайте вопрос
Информатика
Gertrud

На языке программирования pythonДвоичный пробел внутри положительного целого числа N представляет собой любую максимальную последовательность последовательных нулей, которая окружена единицами на обоих концах в двоичном представлении N. Например, номер 9 имеет двоичное представление 1001 и содержит двоичный разрыв длины 2. Число 529 имеет двоичное представление 1000010001 и содержит два двоичных разрыва: один из длины 4 и один из длины 3. Число 20 имеет двоичное представление 10100 и содержит один двоичный разрыв длины 1. Число 15 имеет двоичное представление 1111 и не имеет двоичных разрывов. Например, при N = 1041 функция должна возвращать 5, потому что N имеет двоичное представление 10000010001, и поэтому его самый длинный двоичный разрыв имеет длину 5.

ответы: 1
Зарегистрируйтесь, чтобы добавить ответ
Ответ:

n = int(input())

current_gap, max_gap = 0, 0

while n % 2 != 1:

n //= 2

while n > 0:

if n % 2 == 0:

current_gap += 1

else:

max_gap = max(current_gap, max_gap)

current_gap = 0

n //= 2

print(max_gap)

Остаток от деления на 2 — это последняя цифра в двоичной записи числа N. Тогда, каждый раз рассматривая остаток от деления на два и деля нацело это число на 2 (то есть отсекая последнюю цифру), мы получим перевёрнутую двоичную запись N. В ходе такого "переворота" могут образоваться ведущие нули, поэтому мы от них избавимся (делим нацело число на 2, пока не встретим единицу). Далее, если мы видим 0, то увеличиваем на 1 текущее значение пробела; если видим 1, то смотрим, максимально ли получившееся значение, и обнуляем текущее значение пробела. В конце нас всегда ждёт единица, цикл делает последнюю проверку, а затем программа выводит нужное значение.

286
Rosica
Чтобы ответить необходимо зарегистрироваться.

Другие вопросы: - Информатика

Python 1.Напишите программу, в к

Нужна Помощь по информатике. (те

1. Адресация в Internet2. Алгори

Напишітьпрограму, в якій користу

1) Как узнать сколько байт инфор

1)Доступ к файлу www.txt находящ

Контакты
Реклама на сайте