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

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

  1. Прибавь 2
  2. Прибавь 3
  3. Прибавь предыдущее

Первая команда увеличивает число на экране на 2  , вторая увеличивает это число на 3  , третья прибавляет к числу на экране число, меньшее на 1  (к числу 3  прибавляется 2  , к числу 11  прибавляется 10  и т. д.). Программа для исполнителя — это последовательность команд.

Сколько существует программ, которые число 2  преобразуют в число 11  ?

Решение №1

a = [0] * 12
a[2] = 1
for i in range(3, 12):
    a[i] = a[i-2] + a[i-3] + a[i//2 + 1] * (i % 2)
print(a[11])

Решение №2

a = [0] * 11 * 2
a[2] = 1
for i in range(2, 11):
    a[i + 2] += a[i]
    a[i + 3] += a[i]
    a[i + i - 1] += a[i]
print(a[11])

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