Разбор 8.PNG

№ 6040 ФИПИ 04.02.23 (Уровень: Базовый)

Определите количество шестизначных чисел, записанных в семеричной системе счисления, в записи которых ровно одна цифра 6, при этом чётные и нечётные цифры чередуются.

Untitled

  1. from itertools import * - Импортируем все функции из модуля itertools, через оператор раскрытия *.
  2. count = 0 - Инициализируем переменную count со значением 0, для подсчета подходящих по условию слов.
  3. for s in product('0123456', repeat=6): - Создаём цикл по всем возможным комбинациям длиной 6 из символов '0123456' с помощью функции product из модуля itertools.
  4. slovo = ''.join(s) - Соединяем символы из текущей комбинации кортежа s в строку slovo.
  5. if slovo[0] != '0' and slovo.count('6') == 1: - Проверяем, что первый символ в строке не равен '0' и символ '6' только один.
  6. if all(''.join(x) not in slovo for x in product('0246', repeat=2)): - Через функцию all() проверяем, что для всех комбинаций длины 2 из символов '0246', соединенных в строку x, эта строка не является подстрокой в slovo (не находится внутри).
  7. if all(''.join(x) not in slovo for x in product('135', repeat=2)): - Аналогичное действие для всех комбинаций длины 2 из символов '135', соединенных в строку x.
  8. count += 1 - Увеличиваем значение переменной count на 1, если все условия выполняются.
  9. print(count) - Выводим значение переменной count на экран.
from itertools import *
count = 0
for s in product('0123456', repeat=6):
    slovo = ''.join(s)
    if slovo[0] != '0' and slovo.count('6') == 1:
        if all(''.join(x) not in slovo for x in product('0246', repeat=2)):
            if all(''.join(x) not in slovo for x in product('135', repeat=2)):
                count += 1
print(count)

Ответ: