Число Армстронга в Java: методы проверки чисел Армстронга

Ниже приведены несколько способов проверки чисел Армстронга в Java:

Метод 1: использование функции Math.pow()

public static boolean isArmstrongNumber(int number) {
    int originalNumber = number;
    int n = String.valueOf(number).length();
    int sum = 0;

    while (number > 0) {
        int digit = number % 10;
        sum += Math.pow(digit, n);
        number /= 10;
    }

    return sum == originalNumber;
}

Метод 2: использование метода power() из класса java.lang.Math

import java.lang.Math;
public static boolean isArmstrongNumber(int number) {
    int originalNumber = number;
    int n = String.valueOf(number).length();
    int sum = 0;

    while (number > 0) {
        int digit = number % 10;
        sum += Math.pow(digit, n);
        number /= 10;
    }

    return sum == originalNumber;
}

Метод 3. Использование цикла for и преобразование числа в строку

public static boolean isArmstrongNumber(int number) {
    String strNumber = String.valueOf(number);
    int n = strNumber.length();
    int sum = 0;

    for (int i = 0; i < n; i++) {
        int digit = Character.getNumericValue(strNumber.charAt(i));
        sum += Math.pow(digit, n);
    }

    return sum == number;
}

Метод 4. Использование массива для хранения отдельных цифр

public static boolean isArmstrongNumber(int number) {
    int originalNumber = number;
    int n = String.valueOf(number).length();
    int[] digits = new int[n];
    int sum = 0;

    for (int i = n - 1; i >= 0; i--) {
        digits[i] = number % 10;
        number /= 10;
    }

    for (int digit : digits) {
        sum += Math.pow(digit, n);
    }

    return sum == originalNumber;
}

Метод 5. Использование рекурсии

public static boolean isArmstrongNumber(int number) {
    int originalNumber = number;
    int n = String.valueOf(number).length();
    int sum = calculateSumOfDigits(number, n);

    return sum == originalNumber;
}
private static int calculateSumOfDigits(int number, int n) {
    if (number == 0) {
        return 0;
    }

    int digit = number % 10;
    return (int) Math.pow(digit, n) + calculateSumOfDigits(number / 10, n);
}