Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Прибавь 8
2. Умножь на 3
3. Увеличь на разряд единиц
Первая из них увеличивает число на экране на 8, вторая увеличивает число на экране в 3 раза, третья увеличивает число на экране на значение разряда единиц (например число 12 увеличится на 2, а число 25 на 5). Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 4 результатом является число 174, если известно, что нельзя повторять команду, сделанную на предыдущем шаге.
# c - номер команды на предыдущем шаге
def f(a, b, c = 0):
if a > b:
return 0
if a == b:
return 1
s = 0
if c != 1:
s += f(a + 8, b, 1)
if c != 2:
s += f(a * 3, b, 2)
if c != 3:
s += f(a + (a % 10), b, 3)
return s
print(f(4, 174))
Ответ: 58