Автор: Резервный день 19.06.2024
Уровень: Базовый
Условие задачи:
Определите количество 15-ричных пятизначных чисел, в записи которых ровно одна цифра 8 и не менее двух цифр с числовым значением, превышающим 9.
Теоретическая справка:
В подобных задачах с цифрами обязательно необходимо добавлять проверку num[0] != '0', так как число не может начинаться с нуля.
Код решения:
Комментарии к коду:
- from itertools import *
Импортируем все функции из модуля itertools для работы с итераторами. - cnt = 0
Инициализируем переменную счётчика cnt для подсчета подходящих комбинаций. - for p in product('0123456789ABCDE', repeat=5):
Используем функцию product для генерации всех возможных комбинаций длиной 5 из символов '0123456789ABCDE'. - num = ''.join(p)
Объединяем кортеж p в строку для получения текущего числа в виде строки. - if num[0] != '0' and num.count('8') == 1:
Проверяем, что первое число не равняется '0' и цифра '8' встречается в строке ровно один раз. - if len([x for x in num if int(x, 15) > 9]) >= 2:
Проверяем, что в числе присутствует как минимум две цифры, больше 9 в шестнадцатеричном представлении, то есть 'A', 'B', 'C', 'D', 'E'. - cnt += 1
Если все условия выполнены, увеличиваем счётчик cnt на 1. - print(cnt)
Выводим итоговое значение счётчика cnt, которое соответствует количеству подходящих комбинаций.