У исполнителя Вычислитель две команды, которым присвоены номера:
1. вычесть 4
2. приписать 2
Первая из них уменьшает число на 4, а вторая приписывает к нему справа 2. Составьте алгоритм получения из числа 9 числа 4, содержащий не более 5 команд. В ответе запишите только номера команд.
(Например, 12111 — это алгоритм
вычесть 4
приписать 2
вычесть 4
вычесть 4
вычесть 4,
который преобразует число 6 в 10.)
Если таких алгоритмов более одного, запишите любой из них.
Последовательно пойдем от числа 3 к числу 62:
9 − 4 = 5 (команда 1);
5 − 4 = 1 (команда 1);
приписываем к единице цифру 2 получаем 12 (команда 2);
12 − 4 = 8 (команда 1);
8 − 4 = 4 (команда 1).
Ответ: 11211.
Приведем другое решение на языке Python.
def f(flag, x):
if flag == 1:
return x - 4
if flag == 2:
return int(str(x) + str(2))
x = 9
for flag in range(1, 3):
for flag1 in range(1, 3):
for flag2 in range(1, 3):
for flag3 in range(1, 3):
for flag4 in range(1, 3):
if f(flag, f(flag1, f(flag2, f(flag3, f(flag4, x))))) == 4:
print(flag4, flag3, flag2, flag1, flag)



