Алгоритм решения задания 14. Часть 1
Учимся решать 15 задания первого типа
Читать
Сколько существует шестнадцатеричных трёхзначных чисел, в которых все цифры различны и никакие две чётные или две нечётные цифры не стоят рядом?
Правильный ответ:
840
import string
from itertools import permutations
alph = string.printable[:16]
# Проверяем, что две чётные не стоят рядом => четные с нечётными чередуются
def is_even_pair(digits):
for i in range(len(digits) - 1):
current_is_even = int(digits[i], 16) % 2 == 0
next_is_even = int(digits[i + 1], 16) % 2 == 0
if current_is_even == next_is_even:
return False
return True
count = 0
for val in permutations(alph, 3):
val = "".join(val)
if val[0] != '0' and is_even_pair(val):
count += 1
print(count)
