Задача к ЕГЭ по информатике на тему «количество результатов выполнения программ» №3

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

1. Увеличь на 6

2. Увеличь на 9

3. Умножь на 3

Программа для исполнителя – это последовательность команд.

Сколько различных результатов можно получить при исходном числе 3 в ходе исполнения программы, содержащей ровно 9 команд, если известно, что повторять можно только первую команду, а вторую и третью — нельзя (после первой команды может идти любая другая, но после второй не может идти вторая, а после третьей — третья)?

# Множество различных результатов работы программы
s = set()

# c - номер команды на предыдущем шаге
# k - счётчик количества совершенных команд
def f(a, c=0, k=0):
    if k == 9:
        s.add(a)
        return
    f(a + 6, 1, k + 1)
    if c != 2:
        f(a + 9, 2, k + 1)
    if c != 3:
        f(a * 3, 3, k + 1)

f(3)

print(len(s))

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