№ 6782 (Уровень: Средний)
(PRO100 ЕГЭ) Определите количество шестизначных чисел, записанных в восьмеричной системе счисления, в записи которых есть ровно две цифры 6, при этом никакая нечётная цифра не стоит рядом с цифрой 6.
Пример шестизначного числа, записанного в восьмеричной системе счисления – 123456_8.
Вариант 1: решение через простой “переборчик” вложенными циклами for
Комментарии к каждой строчки кода:
s = '01234567'
- Создаем строку s
со значениями '01234567'.count = 0
- Инициализируем переменную count
со значением 0 (будем считать все подходящие значения сюда).for a in s:
- Начинаем цикл, перебирая каждый символ a
из строки s
.for b in s:
- Вложенный цикл, перебирая каждый символ b
из строки s
.for c in s:
- Еще один вложенный цикл, перебирая каждый символ c
из строки s
.for d in s:
- Еще один вложенный цикл, перебирая каждый символ d
из строки s
.for e in s:
- Еще один вложенный цикл, перебирая каждый символ e
из строки s
.for f in s:
- Еще один вложенный цикл, перебирая каждый символ f
из строки s
.temp = a + b + c + d + e + f
- Соединяем символы a
, b
, c
, d
, e
и f
в одну строку и сохраняем результат в переменную temp
.if a != '0' or temp[0] != '0':
- Проверяем, если символ a
не равен '0' или первый символ в temp
не равен '0', выполняем следующие инструкции (одинаковые два условия, можно выбрать один из них).if temp.count('6') == 2:
- Проверяем, если символ '6' встречается в temp
ровно 2 раза, выполняем следующие инструкции.if all(x not in temp for x in '16 61 36 63 56 65 76 67'.split()):
- Проверяем, если все числа из списка '16 61 36 63 56 65 76 67' не встречаются в temp
, то все условия выполнены.