Тема 5. Алгоритмы – анализ простейших алгоритмов

5.02 Запись числа в другой системе счисления

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела алгоритмы – анализ простейших алгоритмов
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#57743

На вход алгоритма подаётся натуральное число 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, найденное по условию


Ответ: 276

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

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

Бесплатное онлайн-обучение

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

Налоговые вычеты

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

Специальное предложение
для учителей

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

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!