506.py
На вход алгоритма подаётся натуральное число N.
Алгоритм строит по нему новое число R следующим образом.
Строится двоичная запись числа N.
Далее эта запись обрабатывается по следующему правилу:
a) если число чётное, то к двоичной записи числа слева дописывается 10;
б) если число нечётное, то к двоичной записи числа слева дописывается 1 и справа дописывается 01.
Полученная таким образом запись является двоичной записью искомого числа R.
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 4 = 100(2) результатом является число 10100(2) = 20,
а для исходного числа 5 = 101(2) это число 110101(2) = 53.
Укажите максимальное число N, после обработки которого
получается число R, меньшее, чем 30.
"""
На вход алгоритма подаётся натуральное число N.
Алгоритм строит по нему новое число R следующим образом.
Строится двоичная запись числа N.
Далее эта запись обрабатывается по следующему правилу:
a) если число чётное, то к двоичной записи числа слева дописывается 10;
б) если число нечётное, то к двоичной записи числа слева дописывается 1 и справа дописывается 01.
Полученная таким образом запись является двоичной записью искомого числа R.
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 4 = 100(2) результатом является число 10100(2) = 20,
а для исходного числа 5 = 101(2) это число 110101(2) = 53.
Укажите максимальное число N, после обработки которого
получается число R, меньшее, чем 30.
"""
for N in range(1000, 0, -1):
binary = bin(N)[2:] # двоичная запись N
if N % 2 == 0: # если число чётное
binary = "10" + binary # слева дописывается 10
else: # если число нечётное
binary = "1" + binary + "01" # слева 1 и справа 01
R = int(binary, 2) # переводим в десятичную систему
if R < 30:
print(N) # 6
break
"""
На вход алгоритма подаётся натуральное число N.
Алгоритм строит по нему новое число R следующим образом.
Строится двоичная запись числа N.
Далее эта запись обрабатывается по следующему правилу:
a) если число чётное, то к двоичной записи числа слева дописывается 10;
б) если число нечётное, то к двоичной записи числа слева дописывается 1 и справа дописывается 01.
Полученная таким образом запись является двоичной записью искомого числа R.
Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 4 = 100(2) результатом является число 10100(2) = 20,
а для исходного числа 5 = 101(2) это число 110101(2) = 53.
Укажите максимальное число N, после обработки которого
получается число R, меньшее, чем 30.
"""
for N in range(1000, 0, -1):
binary = bin(N)[2:] # двоичная запись N
if N % 2 == 0: # если число чётное
binary = "10" + binary # слева дописывается 10
else: # если число нечётное
binary = "1" + binary + "01" # слева 1 и справа 01
R = int(binary, 2) # переводим в десятичную систему
if R < 30:
print(N) # 6
break