ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

№ 5104. Типовая задача

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

  1. Строится двоичная запись числа N.
  2. Далее эта запись обрабатывается по следующему правилу:
    • если число N делится на 3, то к этой записи дописываются три последние двоичные цифры;
    • если число N на 3 не делится, то остаток от деления сначала увеличивается на единицу, после чего полученное число умножается на 3, а затем результат умножения переводится в двоичную запись и дописывается в конец числа
      Полученная таким образом запись является двоичной записью искомого числа R.
  3. Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 1210 = 11002 результатом является число 11001002 = 10010, а для исходного числа 410 = 1002 это число 1001102 = 3810

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

В ответе запишите это число в десятичной системе счисления.

for N in range(1, 100)[::-1]:
    N_bin = f'{N:b}'
    if N % 3:
        remainder = N % 3
        remainder += 1
        remainder += 3
        N_bin += f'{remainder:b}'
    else:
        N_bin += N_bin[-3:]
    R = int(N_bin, 2)
    if R <= 416:
        print(R)
        break
Разберём это задание на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие