Задача к ЕГЭ по информатике на тему «количество программ из a в b смешанное» №1

Исполнитель Калькулятор преобразует число, записанное на экране. У исполнителя есть три команды, которым присвоены номера:

  1. Прибавить 1
  2. Прибавить 2
  3. Вычесть 3

Сколько существует программ, для которых при исходном числе 20 результатом будет являться число 12? При этом траектория вычисления содержит только числа от 10 до 30 (включительно и без повторов).

def f(s):
    a = s[-1]
    if len(s) > 1 and a == 12:
        return 1
    if a < 10 or a > 30 or (a in s[:-1]):
        return 0
    return sum(f(s + [a + h]) for h in [2, 1, -3])


print(f([20]))

Ответ: 284
Оцените статью
Я решу все!