Задача к ЕГЭ по информатике на тему «прочие прототипы» №1

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

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
Оцените статью
Я решу все!