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

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

1. ООО

2. ООС

3. ООН

4. ОСО

Сколько слов между словами “СОН” и “НОС”?

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

Преобразуем всё к троичной системе счисления:

1. ООО = 000

2. ООС = 001

3. ООН = 002

Получается: О – 0, С – 1, Н – 2.

СОН – 102, НОС – 201.

Переводим в 10СС: 1023 = 9+ 2 = 11,2013 = 18+ 1 = 19  . Количество слов между ними = 19 – 11 – 1 = 7.

Решение Python:

from itertools import *
t = product(’ОСН’, repeat = 3)
c, res1, res2 = 0, 0, 0
for i in t:
    s = ’’.join(i)
    c += 1
    if s == ’СОН’:
        res1 = c
    if s == ’НОС’:
        res2 = c
print(abs(res1 - res2) - 1)

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