502.py

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R: Строится двоичная запись числа N. Далее эта запись обрабатывается так: а) если число нечётное, к двоичной записи слева дописывается 10, а последние две цифры справа заменяются на 01 б) если число чётное, к двоичной записи справа дописывается 1, а первые две цифры слева заменяются на 11 Таким образом получается двоичная запись искомого числа R Результат переводится в десятичную систему и выводится на экран. Например, результат для исходного числа 10 = 1010(2) → 11101(2)= 29 а для числа 9 = 1001(2) → 101001(2) = 41. Укажите минимальное число R, которое может быть результатом этого алгоритма при условии, что N не меньше 42. В ответе запишите это число в десятичной системе счисления.
"""
На вход алгоритма подаётся натуральное число N.
Алгоритм строит по нему новое число R:

    Строится двоичная запись числа N.
    Далее эта запись обрабатывается так:
    а) если число нечётное, к двоичной записи
    слева дописывается 10, а последние две цифры справа заменяются на 01
    б) если число чётное, к двоичной записи
    справа дописывается 1, а первые две цифры слева заменяются на 11

    Таким образом получается двоичная запись искомого числа R
    Результат переводится в десятичную систему и выводится на экран.

Например, результат для исходного числа 10 = 1010(2) → 11101(2)= 29
а для числа 9 = 1001(2) → 101001(2) = 41.

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

for N in range(1000, 42, -1):
    binary = bin(N)[2:]
    if N % 2 == 0: # если число чётное
        binary = binary + "1" # справа дописывается 1
        binary = "11" + binary[2:]  # первые две цифры слева заменяются 11
    else: # если число нечётное
        binary = "10" + binary  # 10 дописывается ко всей двоичной записи
        binary = binary[:-2] + "01"  # последние две справа заменяются 01
    R = int(binary, 2) # переводим двоичную запись в десятичную
    print(R)

    """
    Ответ: 97
    """

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

    Строится двоичная запись числа N.
    Далее эта запись обрабатывается так:
    а) если число нечётное, к двоичной записи
    слева дописывается 10, а последние две цифры справа заменяются на 01
    б) если число чётное, к двоичной записи
    справа дописывается 1, а первые две цифры слева заменяются на 11

    Таким образом получается двоичная запись искомого числа R
    Результат переводится в десятичную систему и выводится на экран.

Например, результат для исходного числа 10 = 1010(2) → 11101(2)= 29
а для числа 9 = 1001(2) → 101001(2) = 41.

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

for N in range(1000, 42, -1):
    binary = bin(N)[2:]
    if N % 2 == 0: # если число чётное
        binary = binary + "1" # справа дописывается 1
        binary = "11" + binary[2:]  # первые две цифры слева заменяются 11
    else: # если число нечётное
        binary = "10" + binary  # 10 дописывается ко всей двоичной записи
        binary = binary[:-2] + "01"  # последние две справа заменяются 01
    R = int(binary, 2) # переводим двоичную запись в десятичную
    print(R)

    """
    Ответ: 97
    """

Репозиторий на GitHub