Определите количество пятизначных чисел, записанных в шестнадцатеричной системе счисления, в записи которых ровно одна цифра 4, при этом никакая нечётная цифра не стоит рядом с цифрой 4.
Примечание: в этой задаче число может начинаться с 0.
Решение через циклы
a = ’0123456789ABCDEF’
count = set()
for x1 in a:
for x2 in a:
for x3 in a:
for x4 in a:
for x5 in a:
s = x1+x2+x3+x4+x5
if s.count(’4’) == 1:
ind = s.index(’4’)
if ind == 4: # если это конец числа
if int(s[ind - 1], 16) % 2 == 0:
count.add(s)
elif ind == 0: # если это начало числа
if int(s[ind + 1], 16) % 2 == 0:
count.add(s)
else:
if int(s[ind - 1], 16) % 2 == 0 and int(s[ind + 1], 16) % 2 == 0:
count.add(s)
print(len(count))
Решение через itertools
from itertools import product
ans = []
for i in product(’0123456789ABCDEF’, repeat = 5):
s = ’’.join(i)
if s.count(’4’) == 1:
ind = s.index(’4’)
if ind == 4: # если это конец числа
if int(s[ind - 1], 16) % 2 == 0:
ans.append(s)
elif ind == 0: # если это начало числа
if int(s[ind + 1], 16) % 2 == 0:
ans.append(s)
else:
if int(s[ind - 1], 16) % 2 == 0 and int(s[ind + 1], 16) % 2 == 0:
ans.append(s)
print(len(ans))
Ответ: 80325