№ 6040 ФИПИ 04.02.23 (Уровень: Базовый)
Определите количество шестизначных чисел, записанных в семеричной системе счисления, в записи которых ровно одна цифра 6, при этом чётные и нечётные цифры чередуются.
from itertools import *
- Импортируем все функции из модуля itertools
, через оператор раскрытия *
.count = 0
- Инициализируем переменную count
со значением 0, для подсчета подходящих по условию слов.for s in product('0123456', repeat=6):
- Создаём цикл по всем возможным комбинациям длиной 6 из символов '0123456' с помощью функции product
из модуля itertools
.slovo = ''.join(s)
- Соединяем символы из текущей комбинации кортежа s
в строку slovo
.if slovo[0] != '0' and slovo.count('6') == 1:
- Проверяем, что первый символ в строке не равен '0' и символ '6' только один.if all(''.join(x) not in slovo for x in product('0246', repeat=2)):
- Через функцию all() проверяем, что для всех комбинаций длины 2 из символов '0246', соединенных в строку x
, эта строка не является подстрокой в slovo
(не находится внутри).if all(''.join(x) not in slovo for x in product('135', repeat=2)):
- Аналогичное действие для всех комбинаций длины 2 из символов '135', соединенных в строку x
.count += 1
- Увеличиваем значение переменной count
на 1, если все условия выполняются.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)