Programa Java para verificar el número Armstrong

En este programa, aprenderá a verificar si un número dado es un número Armstrong o no. Aprenderá a hacer esto usando un ciclo for y un ciclo while en Java.

Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:

  • Java while y do… while Loop
  • Declaración if … else de Java
  • Java para Loop

Un entero positivo se llama número de Armstrong de orden n si

abcd… = a n + b n + c n + d n +…

En el caso de un número Armstrong de 3 dígitos, la suma de los cubos de cada dígito es igual al número en sí. Por ejemplo:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 es un número de Armstrong. 

Ejemplo 1: Verifique el número Armstrong para un número de 3 dígitos

 public class Armstrong ( public static void main(String() args) ( int number = 371, originalNumber, remainder, result = 0; originalNumber = number; while (originalNumber != 0) ( remainder = originalNumber % 10; result += Math.pow(remainder, 3); originalNumber /= 10; ) if(result == number) System.out.println(number + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); ) )

Salida

 371 es un número de Armstrong.
  • Primero, el valor de un número dado (número) se almacena en otra variable entera, originalNumber. Esto se debe a que necesitamos comparar los valores del número final y el número original al final.
  • Luego, se usa un bucle while para recorrer originalNumber hasta que sea igual a 0.
    • En cada iteración, el último dígito de num se almacena en el resto.
    • Luego, el resto se alimenta con 3 (número de dígitos) usando la Math.pow()función y se agrega al resultado.
    • Luego, el último dígito se elimina del número original después de la división por 10.
  • Finalmente, se comparan el resultado y el número. Si es igual, es un número de Armstrong. Si no, no lo es.

Ejemplo 2: Verifique el número de Armstrong para n dígitos

 public class Armstrong ( public static void main(String() args) ( int number = 1634, originalNumber, remainder, result = 0, n = 0; originalNumber = number; for (;originalNumber != 0; originalNumber /= 10, ++n); originalNumber = number; for (;originalNumber != 0; originalNumber /= 10) ( remainder = originalNumber % 10; result += Math.pow(remainder, n); ) if(result == number) System.out.println(number + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); ) )

Salida

 1634 es un número de Armstrong.

En este programa, en lugar de usar el bucle while, hemos usado dos bucles for.

El primer ciclo for se utiliza para contar el número de dígitos del número. Es la forma condensada de:

 para (; número original! = 0; número original / = 10) (n ++;)

El segundo ciclo for luego calcula el resultado donde, en cada iteración, el resto se alimenta con el número de dígitos n.

Visite esta página para aprender cómo puede mostrar todos los números de Armstrong entre dos intervalos.

Articulos interesantes...