Исполнитель преобразует целое число, записанное на экране. У исполнителя три команды, каждой команде присвоен номер:
- Прибавь
- Прибавь
- Прибавь предыдущее
Первая команда увеличивает число на экране на , вторая увеличивает это число на
, третья прибавляет к числу на экране число, меньшее на
(к числу
прибавляется
, к числу
прибавляется
и т. д.). Программа для исполнителя — это последовательность команд.
Сколько существует программ, которые число преобразуют в число
?
Решение №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])