Самоописывающиеся числа: объяснение методов и примера кода

Число с самоописанием — это число, в котором цифры в каждой позиции указывают частоту появления этой цифры в самом числе. Другими словами, число «2024» самоописательно, поскольку оно содержит два нуля, ноль единиц, две двоек и четыре четверки.

Вот пример метода определения того, является ли число самоописывающим с помощью Python:

def is_self_describing_number(number):
    # Convert the number to a string
    num_str = str(number)

    # Iterate over each digit
    for i in range(len(num_str)):
        # Count the frequency of the current digit
        count = num_str.count(str(i))

        # If the count doesn't match the digit at position i, return False
        if count != int(num_str[i]):
            return False

    # If all digits pass the check, return True
    return True

Вы можете использовать функцию is_self_describing_number(), чтобы проверить, является ли число самоописывающим. Например:

number = 2024
if is_self_describing_number(number):
    print(f"{number} is a self-describing number.")
else:
    print(f"{number} is not a self-describing number.")

Выход:

2024 is a self-describing number.