Число Армстронга — это число, равное сумме своих цифр, возведенных в степень, равную количеству цифр. Например, 153 — это число Армстронга, потому что
(1 в степени 3) + (5 в степени 3) + (3 в степени 3) = 153.
💡 Числа Армстронга — отличный пример для изучения работы с алгоритмами, циклами и математическими операциями в C#. Это полезно для новичков, которые хотят углубиться в программирование, и для практического изучения таких технологий, как LINQ.
📌 Основные методы:
1️⃣Цикл while:
Базовый подход, который итерирует по каждой цифре числа и суммирует ее степень.
int number = 153; // Пример
int result = 0, temp = number, digits = number.ToString().Length;
while (temp > 0) {
int remainder = temp % 10;
result += (int)Math.Pow(remainder, digits);
temp /= 10;
}
Console.WriteLine(result == number ? "Число Армстронга" : "Не число Армстронга");
2️⃣Рекурсия:
Используется для разбиения задачи на более мелкие части.
static int SumOfPowers(int number, int digits) {
if (number == 0) return 0;
int digit = number % 10;
return (int)Math.Pow(digit, digits) + SumOfPowers(number / 10, digits);
}3️⃣LINQ:
Компактный и читабельный способ проверки.
int number = 153;
int digits = number.ToString().Length;
bool isArmstrong = number.ToString()
.Select(c => (int)Math.Pow(char.GetNumericValue(c), digits))
.Sum() == number;
Console.WriteLine(isArmstrong ? "Число Армстронга" : "Не число Армстронга");