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

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

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

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

Задача 1#75228

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1. Строится троичная запись числа N.

2. Далее эта запись обрабатывается по следующим правилам:

а) если число N делится на 5, то к этой записи справа дописывается 02;

б) если число N не делится на 5, то остаток от деления умножается на 3, это произведение переводится в троичную систему счисления, от него берется две последние цифры и дописываются в конец числа.

Полученная таким образом запись является троичной записью искомого числа R.

Например, для исходного числа 1210 = 1103  результатом является число 110203 = 11410  , а для исходного числа 510 = 123  результатом является число 12023 = 4710  .

Укажите минимальное число N, для которого искомое число R равно 192. В ответе запишите это число в десятичной системе счисления.

Показать ответ и решение

В условии задачи нам дан алгоритм, который сначала переводит число N в троичную запись. Для удобства и универсальности мы реализовали функцию f(n, osn), которая переводит число n в систему счисления с основанием osn. В теле основного цикла перебираем значения N от 1 до 299, преобразуя каждое в троичную систему счисления с помощью f(n, 3). Если число делится на 5, согласно условию, к полученной троичной записи добавляем справа "02". Если же число не делится на 5, мы берём остаток от деления на 5, умножаем его на 3, затем переводим результат в троичную систему, берём последние две цифры этой записи и добавляем их в конец исходной троичной строки. После этого полученную строку рассматриваем как троичное число и переводим в десятичное целое. Далее проверяем, равен ли этот результат 192. Если равен, выводим текущее число N и прерываем цикл, поскольку нам нужен минимальный такой N. Таким образом мы пошагово реализуем алгоритм из условия, отображая каждую операцию в коде и проверяя необходимое условие.

def f(n, osn):  # Функция для перевода числа n в систему счисления с основанием osn
    s = ’’
    while n > 0:
        s += str(n % osn)  # Добавляем остаток от деления на основание в строку
        n //= osn          # Делим n на основание, уменьшая число
    s = s[::-1]            # Разворачиваем строку, чтобы получить правильный порядок цифр
    return s

for n in range(1, 300):  # Перебираем числа от 1 до 299 включительно
    s = f(n, 3)          # Переводим число n в троичную систему счисления
    if n % 5 == 0:       # Если число n делится на 5
        s += ’02’        # Добавляем к троичной записи справа "02"
    if n % 5 != 0:       # Если число n не делится на 5
        k = (n % 5) * 3  # Вычисляем остаток от деления на 5, умноженный на 3
        s1 = f(k, 3)     # Переводим полученное число в троичную систему счисления
        s += s1[len(s1)-2:]  # Добавляем последние две цифры этой записи к исходной троичной записи
    r = int(s, 3)        # Переводим итоговую троичную строку в десятичное число
    if r == 192:         # Проверяем, равно ли число 192
        print(n)         # Выводим искомое минимальное число N
        break            # Прекращаем перебор, т.к. ответ найден

Ответ: 21

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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