Задание №5: Анализ алгоритмов для исполнителей
Основные типы и прототипы задания №5:
Двоичные автоматы
Троичные и n-ичные автоматы
Поиск минимального N или R
Условие задания
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1) Вычисляется сумма S1 всех чётных цифр десятичной записи числа N. Если чётных цифр нет, сумма S1 считается равной 0.
2) Вычисляется сумма S2 всех цифр десятичной записи числа N, стоящих на позициях с нечётными номерами. Позиции нумеруются слева направо, начиная с 1.
3) Вычисляется результат R как модуль разности S1 и S2.
Например, N = 1234. Сумма чётных цифр S1 = 2 + 4 = 6. Сумма цифр в позициях с нечётными номерами S2 = 1 + 3 = 4. Результат работы алгоритма R = 6 – 4 = 2.
Укажите наименьшее число, в результате обработки которого по данному алгоритму получится число 27.
2) Вычисляется сумма S2 всех цифр десятичной записи числа N, стоящих на позициях с нечётными номерами. Позиции нумеруются слева направо, начиная с 1.
3) Вычисляется результат R как модуль разности S1 и S2.
Например, N = 1234. Сумма чётных цифр S1 = 2 + 4 = 6. Сумма цифр в позициях с нечётными номерами S2 = 1 + 3 = 4. Результат работы алгоритма R = 6 – 4 = 2.
Ответ:
90909
Общий шаблон задания №5 на 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
Шаблон общий для всего номера: формулу, числа и строки подставьте из условия. Как это делать, показано в разборе задания №5.