- 15 сентября, 2023
- Александр Ермаков
Условие
Решение
Напишем программу определения номера слова «УДАЧА«.
Определим две строки — одна будет состоять из букв расположенных в алфавитном порядке, с помощью которых составляются слова, вторая из гласных букв.
s = 'АДУЧ'
gl = 'АУ'
Подключим функцию product() из библиотеки itertools. Она нам понадобится, для того, чтобы составлять пятибуквенные слова.
from itertools import product
В целом product() можно не использовать, а воспользоваться вложенными циклами for. Но такой способ решения приведет к существенному загромождению кода.
Напишем код для генерации слов. Нам понадобятся пять переменных для каждой позиции буквы в слове: a1, a2, a3, a4 и a5. В каждую переменную будут подставляться символы из строки s. Полученный набор символов мы будем сохранять в строку o.
Далее необходимо сделать проверку первой буквы, нам важно, чтобы она была гласной. Если слово начинается на гласную букву оно нам подходит и мы его засчитываем.
Как только полученная строка стала словом «УДАЧА«, выводим на экран состояние счетчика и прекращаем выполнение функции product().
for a1, a2, a3, a4, a5 in product(s, repeat=5):
o = a1+a2+a3+a4+a5
if o[0] in gl:
sl += 1
if o == 'УДАЧА':
print(sl)
break
if R <= 170:
max_R = max(max_R, R)
Листинг программы
from itertools import product
s = 'АДУЧ'
gl = 'АУ'
sl = 0
for a1, a2, a3, a4, a5 in product(s, repeat=5):
o = a1+a2+a3+a4+a5
if o[0] in gl:
sl += 1
if o == 'УДАЧА':
print(sl)
break
Ответ
333