Задание №5: Анализ алгоритмов для исполнителей
Основные типы и прототипы задания №5:
Двоичные автоматы
Троичные и n-ичные автоматы
Поиск минимального N или R
Условие задания
(Н. Сафронов) Алгоритм получает на вход натуральное число N > 10 и строит по нему новое число R следующим образом:
Укажите минимальное значение R, больше чем 100, которое может получится в результате работы алгоритма. В ответе запишите это число в десятичной системе счисления.
1. Строится троичная запись числа N.
2. К этой записи дописываются разряды по следующему правилу. Если количество четных цифр в полученной записи больше чем нечетных, слева дописывается 22, иначе 11.
3. Полученная таким образом запись является троичной записью искомого числа R.
Например, для числа 18 троичная запись 2003 преобразуется в запись 222003 = 234, для числа 22 троичная запись 2113 преобразуется в 112113 = 130. 2. К этой записи дописываются разряды по следующему правилу. Если количество четных цифр в полученной записи больше чем нечетных, слева дописывается 22, иначе 11.
3. Полученная таким образом запись является троичной записью искомого числа R.
Укажите минимальное значение R, больше чем 100, которое может получится в результате работы алгоритма. В ответе запишите это число в десятичной системе счисления.
Ответ:
120
Шаблон решения на Python
# === Задание 5: Автомат преобразования двоичных чисел ===
for n in range(1, 1000):
b = bin(n)[2:]
if b.count('1') % 2 == 0:
b = b + '0'
b = '10' + b[2:]
else:
b = b + '1'
b = '11' + b[2:]
r = int(b, 2)
if r > 40:
print(f"Ответ: N={n}, R={r}")
break