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

Все восьмибуквенные слова, в составе которых могут быть только русские буквы А, Б, Ж, К, П, записаны в алфавитном порядке и пронумерованы, начиная с 1.

Ниже приведено начало списка.

1. АААААААА

2. АААААААБ

3. АААААААЖ

4. АААААААК

5. АААААААП

6. ААААААБА

Сколько слов находится между первым и последним словами, начинающимися на БЖ и заканчивающимися на КП?

Решение руками

Пронумеруем буквы: A – 0, Б – 1, Ж – 2, К – 3, П – 4.

Тогда первое слово будет БЖААААКП или 12000034 = 109394        5         10  .

Последнее слово будет БЖППППКП или 124444345 = 12499410

Получаем количество слов (исключая первое и последнее): 124994 − 109394 − 1 = 15599

Решение Python:

a = ’АБЖКП’
c = 0
arr = []
for i in a:
    for j in a:
        for n in a:
            for k in a:
                for m in a:
                    for p in a:
                        for q in a:
                            for w in a:
                                s = i + j + n + k + m + p + q + w
                                c += 1
                                if s[0:2] == ’БЖ’ and s[-2] == ’К’ and s[-1] == ’П’:
                                    # print(c, s)
                                    arr.append(c)
print(max(arr) - min(arr)-1)

Решение Python:

from itertools import *
c, res1, res2 = 0, 0, 0
res = []
for i in product(’АБЖКП’, repeat = 8):
    s = ’’.join(i)
    c += 1
    if (s[0:2] == ’БЖ’) and (s[-2:] == ’КП’):
        res.append(c)
print(max(res) - min(res) - 1)

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