5.02 Запись числа в другой системе счисления
Ошибка.
Попробуйте повторить позже
На вход алгоритма подаётся натуральное число . Алгоритм строит по нему новое число
следующим
образом.
1. Строится двоичная запись числа .
2. Далее эта запись обрабатывается по следующему правилу:
а) если остаток от деления числа на 5 чётный, то к этой записи справа дописываются два
нуля.
б) если остаток от деления числа на 5 нечётный, то к этой записи справа дописывается единица.
Полученная таким образом запись является двоичной записью искомого числа .
3. Результат переводится в десятичную систему и выводится на экран.
Укажите минимальное число , большее 300, которое может быть получено в результате работы этого алгоритма.
В ответе это число запишите в десятичной системе.
В данной задаче мы реализуем алгоритм, который преобразует число N в новое число R, следуя описанным шагам. Сначала для каждого числа N из диапазона от 1 до 999 мы получаем его двоичную запись в виде строки без префикса «0b». Затем анализируем остаток от деления числа N на 5: если этот остаток чётный, к двоичной записи справа дописываем два нуля, а если нечётный — добавляем единицу. Полученная строка является двоичной записью искомого числа R. Далее переводим эту строку из двоичной системы в десятичное число. В цикле перебираем все такие числа R, которые получаются для N от 1 до 999, и собираем те, которые больше 300. В конце среди всех найденных значений выбираем минимальное и выводим его.
ans= [] # Список для хранения всех подходящих значений R, больших 300 for n in range(1,1000): # Перебираем все числа от 1 до 999 включительно t = bin(n)[2:] # Получаем двоичную запись числа N без префикса ’0b’ if (n % 5) % 2 == 0: # Проверяем, является ли остаток от деления N на 5 чётным t += ’00’ # Если чётный, дописываем справа два нуля else: t += ’1’ # Если нечётный, дописываем справа единицу r = int(t,2) # Переводим полученную двоичную строку в десятичное число R if r > 300: # Проверяем, что R больше 300 ans += [r] # Добавляем R в список подходящих значений print(min(ans)) # Выводим минимальное из найденных значений R, больших 300
Специальные программы

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

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

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

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

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

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