5.02 Запись числа в другой системе счисления
Ошибка.
Попробуйте повторить позже
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. В четверичной записи числа N дублируется последняя цифра.
2. Получившееся число переводится в двоичное представление.
3. В получившейся записи дублируется последняя цифра.
4. Полученное в результате этих операций число переводится в десятичную систему счисления.
Укажите максимальное число, которое может являться результатом выполнения алгоритма, меньшее 280.
Для решения задачи мы должны реализовать пошагово описанный алгоритм преобразования числа N. Сначала для каждого числа N в диапазоне от 1 до 299 включительно переводим его в четверичную систему счисления. Для этого используем цикл с делением и взятием остатка от деления на 4, формируя строковое представление в четверичной системе. После получения записи числа в четверичной системе дублируем последнюю её цифру, добавляя её в конец строки. Далее полученную строку переводим обратно в десятичное число, используя основание 4. Затем это число переводим в двоичную строку (без префикса «0b»). По условию к этой двоичной записи также дублируется последняя цифра — она добавляется в конец строки. Полученную строку двоичного числа мы переводим обратно в десятичное целое число, которое является результатом работы алгоритма R. Для всех чисел из диапазона мы вычисляем R, и если R меньше 280, сравниваем его с текущим максимальным найденным значением, обновляя максимум при необходимости. По завершении перебора выводим максимальное значение R, удовлетворяющее условию. Такой подход позволяет полностью реализовать алгоритм из условия и найти искомый максимум.
mx = 0 # Инициализация переменной для хранения максимального результата R, удовлетворяющего условию for n in range(1, 300): # Перебор всех натуральных чисел от 1 до 299 включительно f = ’’ # Пустая строка для формирования записи числа в четверичной системе счисления while n > 0: # Цикл для перевода числа n в четверичную запись f = str(n % 4) + f # Добавляем остаток от деления на 4 в начало строки f n = n // 4 # Целочисленное деление n на 4 для перехода к следующей цифре f += f[-1] # Дублируем последнюю цифру четверичной записи, добавляя её в конец строки b = bin(int(f, 4))[2:] # Переводим четверичное число в десятичное, затем в двоичную строку без префикса ’0b’ b += b[-1] # Дублируем последнюю цифру двоичной записи, добавляя её в конец строки r = int(b, 2) # Переводим полученную двоичную строку обратно в десятичное число R if r < 280: # Проверяем, что R меньше 280 mx = max(r, mx) # Обновляем максимальное значение R, если текущее больше print(mx) # Выводим максимальное значение R, найденное по условию
Специальные программы

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

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

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

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

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

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