Задача к ЕГЭ по информатике на тему «подсчет количества слов/чисел» №1

Определите количество пятизначных чисел, записанных в шестнадцатеричной системе счисления, в записи которых ровно одна цифра 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
Оцените статью
Я решу все!