Есть несколько способов найти число Армстронга в 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, был сделан следующий снимок экрана, чтобы проиллюстрировать результат.