Исполнитель «Цепочка» собирает последовательность из букв латинского алфавита с помощью двух команд:
1. Добавить следующую по алфавиту букву
2. Пропустить три буквы и взять следующую букву по алфавиту
Программа для такого исполнителя – это последовательность команд. Например, последовательность команд 121 преобразует «B» в «BCGH». Сколько существует программ из пяти команд, которые преобразуют исходную цепочку «А» в цепочку, оканчивающуюся буквой «O» и не содержащую букву «M».
Латинский алфавит: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Ответ:
Тренировочный вариант #2 И. Карпачев – задание №23
Решение:
|
1 2 3 4 5 6 7 8 |
s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' def f(x,k): if x[-1]>'O' or 'M' in x: return 0 if x[-1]=='O' and k==5: return 1 return f(x+s[s.find(x[-1])+1],k+1)+f(x+s[s.find(x[-1])+4],k+1) print(f('A',0)) |
Ответ: 9