Все 3-буквенные слова, в составе которых могут быть буквы О, С, Н, записаны в определённом порядке и пронумерованы, начиная с 1. Ниже приведено начало списка.
1. ООО
2. ООС
3. ООН
4. ОСО
…
Сколько слов между словами “СОН” и “НОС”?
Решение руками:
Преобразуем всё к троичной системе счисления:
1. ООО = 000
2. ООС = 001
3. ООН = 002
Получается: О – 0, С – 1, Н – 2.
СОН – 102, НОС – 201.
Переводим в 10СС: . Количество слов между ними = 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