Есть несколько способов найти число Армстронга в Python.

Что такое число Армстронга ?

Число Армстронга, также известное как нарциссическое число. Это особое число, равное сумме его цифр. Каждое число возводится в степень количества цифр.

Например, 371 — это число Армстронга, потому что сумма куба(куба, потому что это трехзначное число) каждой цифры, т. е. 3^3 + 7^3 + 1^3 = 371, равна исходному числу.

Проверьте число, используя рекурсию

Рекурсия в Python — это процесс, в котором функция вызывает себя прямо или косвенно. Ее можно разделить на более мелкие подзадачи с использованием рекурсии. Это способ повторяющегося определения.

Мы можем использовать рекурсию, чтобы найти число Армстронга в Python, поскольку она вычисляет сумму цифр, возведенных в соответствующую степень.

Вот полная программа для проверки числа Армстронга с использованием рекурсии в Python.

def count_digits(num):
    if num == 0:
        return 0
    return 1 + count_digits(num // 10)

def is_armstrong(num, digit_count):
    if num == 0:
        return 0
    return((num % 10) ** digit_count) + is_armstrong(num // 10, digit_count)

def check_armstrong(num):
    digit_count = count_digits(num)
    return num == is_armstrong(num, digit_count)

number = int(input("Enter a number: "))
print(check_armstrong(number))

Приведенная ниже часть кода Python используется для проверки того, равно ли num 0; это означает, что цифр больше не осталось, поэтому он возвращает 0. Если это не так, то извлеките последнюю цифру числа, используя целочисленное деление(//) на 10, и добавьте 1 к результату count_digit для оставшейся последней части числа. .

if num == 0:
return 0
return 1 + count_digits(num // 10)

Затем вычислите сумму каждой цифры, возведенной в степень digit_count, и добавьте ее к результату is_armstrong.

return((num % 10) ** digit_count) + is_armstrong(num // 10, digit_count)

Здесь, вызывая функцию count_digita, она вычисляет количество цифр в числе n. Она возвращает True, если число num равно результату функции is_armstrong, имеющей аргумент num и digit_count. В противном случае он возвращает False.

digit_count = count_digits(num)
    return num == is_armstrong(num, digit_count)

Выход 1: вот вывод числа, которое является числом Армстронга.

Enter a number: 153
True

Обратитесь к снимку экрана ниже:

Проверьте число, используя рекурсию

Выход 2: Вот выходные данные чисел, которые не являются числом Армстронга.

Enter a number: 2458
False

После того, как код был реализован в редакторе Pycharm, был сделан следующий снимок экрана, чтобы проиллюстрировать результат.

Код был реализован в редакторе Pycharm

Добавить комментарий