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

Все 5-буквенные слова, в составе которых могут быть буквы К, А, М, Е, О записаны в определённом порядке и пронумерованы, начиная с 1. Ниже приведено начало списка.

1. ККККК

2. ККККА

3. ККККМ

4. ККККЕ

5. ККККО

6. КККАК

Сколько слов, оканчивающихся на ОМ, между словами «КОМОК» и «ЕМКОМ»?

Решение Python:

flag = 0
counter = 0
for a1 in (’КАМЕО’):
    for a2 in (’КАМЕО’):
        for a3 in (’КАМЕО’):
            for a4 in (’КАМЕО’):
                for a5 in (’КАМЕО’):
                    s = a1 + a2 + a3 + a4 + a5
                    if s == ’КОМОК’:
                        flag = 1
                    if s == ’ЕМКОМ’:
                        flag = 0
                    counter += flag * (s[-2] + s[-1]) == ’ОМ’
print(counter)

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

Преобразуем буквы в пятеричную систему счисления: К — 0, А — 1, М — 2, Е — 3, О — 4.

То есть нам нужно найти количество слов, оканчивающихся на 42 м еж ду 042405 и 320425  .

Выпишем подходящие слова по порядке:

1. 04242

2. 04342

n. 31442.

Значит, нам нужно количество чисел от 425  до 3145  : 3145 − 425 + 1 = 84− 22 + 1 = 63  .

Решение Python:

from itertools import *
t = product(’КАМЕО’, repeat = 5)
c, f = 0, 0
for i in t:
    s = ’’.join(i)
    if s == ’КОМОК’:
        f = 1
    if s == ’ЕМКОМ’:
        f = 0
    c += f * ((s[-2] + s[-1]) == ’ОМ’)
print(c)

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