5.01 Запись числа в двоичной системе счисления
Ошибка.
Попробуйте повторить позже
Алгоритм получает на вход натуральное число и строит по нему новое число
следующим образом:
1. Строится двоичная запись числа .
2. Вместо последней (самой правой) двоичной цифры дважды записывается вторая слева цифра двоичной записи.
3. Результат переводится в десятичную систему.
При каком наименьшем числе в результате работы алгоритма получится
? В ответе запишите это число в
десятичной системе счисления.
Решение программой
В условии задачи описан алгоритм, который по натуральному числу N (> 1) строит новое число R. Для поиска минимального числа N, при котором R > 58, реализуем этот алгоритм на Python.
Первым шагом переводим число N в двоичную строку, убирая префикс ’0b’ с помощью среза [2:].
Далее по условию последняя (самая правая) цифра в двоичной записи заменяется на два раза повторённую вторую слева цифру из этой же записи. Для этого сначала отрезаем последний символ строки (s[:len(s) - 1]), а затем добавляем два раза символ с индексом 1 — вторую слева цифру.
Полученную новую двоичную строку преобразуем обратно в десятичное число с помощью int(строка, 2).
Перебираем значения N в диапазоне от 10 до 999 и проверяем, при каком минимальном N получаем число R больше 58. Как только это условие выполняется, выводим это значение N и завершаем цикл.
# Перебираем значения N в диапазоне от 10 до 999 for i in range(10, 1000): s = bin(i)[2:] # Получаем двоичную запись числа N без ’0b’ s = s[:len(s) - 1] # Убираем последнюю (правую) цифру s += s[1] * 2 # Добавляем два раза вторую слева цифру r = int(s, 2) # Переводим новую двоичную запись в десятичное число if r > 58: print(i) # Выводим минимальное N, при котором R > 58 break
Аналитическое решение:
Возьмем число . Видим, что вторая слева цифра и последние 2 совпадают, значит обрубаем 2 последние
цифры и получаем
, но тут не хватает одной цифры, которую удалили, и наименьшее тут будет являться 0, поэтому
допишем его
.
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!