№ 6782 (Уровень: Средний)

Разбор 8.PNG

(PRO100 ЕГЭ) Определите количество шестизначных чисел, записанных в восьмеричной системе счисления, в записи которых есть ровно две цифры 6, при этом никакая нечётная цифра не стоит рядом с цифрой 6.

Пример шестизначного числа, записанного в восьмеричной системе счисления – 123456_8.

Вариант 1: решение через простой “переборчик” вложенными циклами for

Вариант 1: решение через простой “переборчик” вложенными циклами for

Комментарии к каждой строчки кода:

  1. s = '01234567' - Создаем строку s со значениями '01234567'.
  2. count = 0 - Инициализируем переменную count со значением 0 (будем считать все подходящие значения сюда).
  3. for a in s: - Начинаем цикл, перебирая каждый символ a из строки s.
  4. for b in s: - Вложенный цикл, перебирая каждый символ b из строки s.
  5. for c in s: - Еще один вложенный цикл, перебирая каждый символ c из строки s.
  6. for d in s: - Еще один вложенный цикл, перебирая каждый символ d из строки s.
  7. for e in s: - Еще один вложенный цикл, перебирая каждый символ e из строки s.
  8. for f in s: - Еще один вложенный цикл, перебирая каждый символ f из строки s.
  9. temp = a + b + c + d + e + f - Соединяем символы a, b, c, d, e и f в одну строку и сохраняем результат в переменную temp.
  10. if a != '0' or temp[0] != '0': - Проверяем, если символ a не равен '0' или первый символ в temp не равен '0', выполняем следующие инструкции (одинаковые два условия, можно выбрать один из них).
  11. if temp.count('6') == 2: - Проверяем, если символ '6' встречается в temp ровно 2 раза, выполняем следующие инструкции.
  12. 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, то все условия выполнены.