Задача к ЕГЭ по информатике на тему «подсчет количества слов/чисел» №9

Катя составляет 5-буквенные коды. В кодах разрешается использовать только буквы С,И,М,В,О,Л, при этом код не может начинаться с гласной буквы, а также не может содержать двух одинаковых букв подряд. Сколько различных кодов может составить Катя?

Решение программой (циклы):

ans = set()
alf = ’СИМВОЛ’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                for x5 in alf:
                    w = x1 + x2 + x3 + x4 + x5
                    if w[0] not in ’ИО’:
                        f = 1  # Переменная-флаг
                        for i in range(len(w) - 1):
                            # Если хоть раз условие не выполнилось - флаг станет 0
                            if w[i] == w[i + 1]:
                                f = 0
                                break
                        # Только если флаг остался единицей - считаем слово
                        if f:
                            ans.add(w)
print(len(ans))

Решение программой (itertools):

from itertools import product

ans = set()
alf = ’СИМВОЛ’

for w in product(alf, repeat=5):
    w = ’’.join(w)
    if w[0] not in ’ИО’:
        f = 1
        for i in range(len(w) - 1):
            if w[i] == w[i + 1]:
                f = 0
                break
        if f:
            ans.add(w)
print(len(ans))

Ответ: 2500
Оцените статью
Я решу все!