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

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

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

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

Задача 1#75229

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

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

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

а) если в троичной записи числа содержится хотя бы одна цифра 2, то к этой записи справа дописывается 0;

б) если в троичной записи числа нет цифры 2, то берется последняя цифра числа N, затем делится нацело на 2, переводится в троичную запись и дописываются в конец числа.

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

Например, для исходного числа 1210 = 1103  результатом является число 11013 = 3710  , а для исходного числа 510 = 123  результатом является число 1203 = 1510  .

Укажите минимальное число R, не меньшее 202, которое может быть получено с помощью полученного алгоритма. В ответе запишите это число в десятичной системе счисления.

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


a = set()
for n in range(1, 200):
    s = f(n, 3)  # переводим число в троичную систему счисления
    if ’2’ in s:  # если в троичной записи содержится хотя бы одна двойка
        s += ’0’  # то приписываем 0
    if ’2’ not in s:  # если в троичной записи нет двойки
        k = (n % 10) // 2  # то берем последнюю цифру числа n и делим нацело на 2
        s1 = f(k, 3)  # переводим это число в троичную сс
        s += s1  # прибавляем к троичной записи числа
    r = int(s, 3)
    if r >= 202:
        a.add(r)
print(min(a))

Ответ: 204

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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