Все -буквенные слова, в составе которых могут быть буквы К, О, Ф, Е записаны в алфавитном порядке. Вот начало списка :
. ЕЕЕЕЕ
. ЕЕЕЕК
. ЕЕЕЕО
. ЕЕЕЕФ
. ЕЕЕКЕ
Укажите номер последнего слова, в котором ровно одна буква Ф, а буква Е не встречается ни разу.
Решение руками
Для начала дадим каждое букве численное значение: Е — 0, К — 1, О — 2, Ф — 3. Как мы видим, данные числа представляют собой цифры четверичной системы счисления. Наибольшее число, буквы которого будут удовлетворять условию выглядит следующим образом: ФОООО =
Переведём данное число в десятичную систему счисления: =
Поскольку нам нужно определить номер строки, на которой встречается данное слово, а отсчёт строк начинается с 1, то к полученному значению нужно прибавить :
.
Ответ:
Решение через циклы
a = ’ЕКОФ’ # алфавит
count = 0
for x1 in a:
for x2 in a:
for x3 in a:
for x4 in a:
for x5 in a:
s = x1+x2+x3+x4+x5 # составляем слово
count += 1 # увеличиваем счётчик строк слов
if s.count(’Ф’) == 1 and s.count(’Е’) == 0: # если слово подходит по условию
print(count) # вывод номера строки, на котором находится данное слово
Решение через itertools
from itertools import product
# используем порядок букв из начала списка
count = 0
maxim = 0
for i in product("ЕКОФ", repeat=5):
count += 1
if i.count("Е") == 0 and i.count("Ф")==1:
maxim = count
print(maxim)