Все 5-буквенные слова, в составе которых могут быть только буквы Ф, О, К, У, С, записаны в алфавитном порядке и пронумерованы.
Вот начало списка:
- ККККК
- ККККО
- ККККС
- ККККУ
- ККККФ
…
Под каким номером в списке идёт последнее слово, которое не содержит букв Ф и содержит ровно две буквы У?
Ответ:
ЕГЭ по информатике Основная волна 07.06.2024 kompege.ru – задание №8
Решение:
|
1 2 3 4 5 6 7 |
from itertools import product k=1 for i in product('КОСУФ',repeat=5): a=''.join(i) if a.count('Ф')==0 and a.count('У')==2: print(k) k+=1 |
…
2311
2312
2313
Пошаговое объяснение кода:
from itertools import productИмпортируем функциюproductиз модуляitertools, которая позволяет получить декартово произведение указанных последовательностей. В нашем случае, это все возможные 5-буквенные комбинации из букв К, О, С, У, Ф.k = 1Инициализируем счетчикkс начальным значением 1. Этот счетчик будет использоваться для отслеживания номера текущего слова.for i in product('КОСУФ', repeat=5):Используем циклfor, чтобы перебрать все возможные комбинации длиной 5 из букв К, О, С, У, Ф.product('КОСУФ', repeat=5)создает итератор, который генерирует все возможные 5-буквенные комбинации.a = ''.join(i)Преобразуем текущую комбинациюi(которая является кортежем) в строкуaс помощью''.join(i).if a.count('Ф') == 0 и a.count('У') == 2:Проверяем, содержит ли строкаaровно две буквы У и не содержит ли букву Ф. Если условие выполняется, выполняется тело условия.print(k)Если условия выполнены, выводим текущий номер словаk.k += 1Увеличиваем счетчикkна 1, чтобы перейти к следующему слову.
Ответ: 2313