На вход алгоритма подаётся натуральное число N.
Алгоритм строит по нему новое число R следующим образом.
- Строится двоичная запись числа N.
- Далее эта запись обрабатывается по следующему правилу:
а) если число N чётное, то к двоичной записи числа слева дописывается 10;
б) если число N нечётное, то к двоичной записи числа слева дописывается 1 и справа дописывается 01.
- Полученная таким образом запись является двоичной записью искомого числа R.
- Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 410 = 1002 результатом является число 2010 = 101002, а для исходного числа 510 = 1012 — число 5310 = 1101012.
Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, не меньшее 190.
В ответе запишите это число в десятичной системе счисления.
Решение
🔹 Шаг 1. Перебор чисел и двоичная запись
for N in range(1, 20):
s = f'{N:b}'
print(N, '→', s)
📌 Результат: 1 → 1, 2 → 10, 3 → 11, 19 → 10011 и т.д.
🔹 Шаг 2. Проверка чётности N
for N in range(1, 20):
s = f'{N:b}'
if N % 2 == 0:
print(N, s, 'чётное')
else:
print(N, s, 'нечётное')
📌 Результат: 1 1 нечётное, 2 10 чётное, 3 11 нечётное, 19 10011 нечётное и т.д.
🔹 Шаг 3. Изменение двоичной строки
for N in range(1, 20):
s = f'{N:b}'
if N % 2 == 0:
s_new = '10' + s
print(N, s, '→', s_new, '('10' слева)')
else:
s_new = '1' + s + '01'
print(N, s, '→', s_new, '('1' слева и '01' справа)')
📌 Результат: как именно меняется двоичная строка по правилу из условия.
🔹 Шаг 4. Перевод обратно в десятичное число
for N in range(1, 20):
s = f'{N:b}'
if N % 2 == 0:
s = '10' + s
else:
s = '1' + s + '01'
R = int(s, 2)
print(N, '→', s, '→', R)
📌 Результат: 1 → 1101 → 13, 2 → 1010 → 10, 3 → 11101 → 29, 19 → 11001101 → 205 и т.д.
🔹 Шаг 5. Поиск первого N, при котором R ≥ 190
Цель: собрать всё вместе и понять задачу целиком.
for N in range(1, 1000):
s = f'{N:b}'
if N % 2 == 0:
s = '10' + s
else:
s = '1' + s + '01'
R = int(s, 2)
if R >= 190:
print(N)
break
📌 Результат: минимальное значение N, при котором R ≥ 190. Ответ: 17.