¿Qué es el número de Armstrong en Java? Sus requisitos previos y algoritmo
Publicado: 2021-04-08Tabla de contenido
¿Qué es el número de Armstrong?
Un número dado x se llama número de Armstrong de orden n si es igual a la suma de sus dígitos elevados a la potencia n, es decir:
abc= pow(a,n) + pow(b,n) + pow(c,n)
Un entero positivo de n dígitos es un número de Armstrong (de orden 3) si es igual a la suma de los cubos de sus dígitos. Por ejemplo:
Entrada: 153
Salida: Sí
1*1*1 + 5*5*5 + 3*3*3 = 153
Por lo tanto, 153 es un número de Armstrong.
Entrada: 121
Salida: Sí
1*1*1 + 2*2*2 + 1*1*1 = 10
Por lo tanto, 120 no es un número de Armstrong.
Requisitos previos y algoritmo
En este artículo, aprenderemos a comprobar si un número de entrada es un número de Armstrong o no. Para esto, usaremos un bucle while y un bucle for en Java. Para entender este programa, necesitamos conocimiento de los siguientes temas en Java:
- Declaración if-else de Java
- Java para bucle
- Ciclo while y do-while de Java
Algoritmo:
- Tome una variable entera x
- Se asigna valor a la variable x
- Los dígitos del valor se dividen
- El valor del cubo de cada dígito se encuentra
- Suma los valores de todos los cubos.
- La salida se guarda en la variable de suma
- Si suma=X, imprime el número de Armstrong
Si suma != X, no imprima el número de Armstrong
Programa para verificar el número de Armstrong en Java
1. Número de Armstrong en Java de orden 3
Código:
clase pública Armstrong{
public static void main(String[] args) {
intx=0,a,temp;
int n=153;//Es el numero para chequear Armstrong
temperatura=n;
mientras (n>0)
{
a=n%10;
n=n/10;
x=x+(a*a*a);
}
si (temp == x)
System.out.println(“Número de Armstrong”);
demás
System.out.println(“No es el número de Armstrong”);
}
}
Producción:
Explicación
Primero, el valor de un número N dado se almacena en otra variable entera, x. Esto se hace porque necesitamos comparar los valores del número original y el número final al final. Se usa un ciclo while para recorrer el número N hasta que sea igual a 0. Con cada iteración, el último dígito de N se almacena en a.
Luego, el resultado se calcula elevando al cubo a o usando Math. pow() y añadiéndolo a x. Cuando se quita el último dígito de N, se divide por 10. Finalmente se comparan =, temp y X. Si son iguales, es un número de Armstrong. De lo contrario, no lo es.
2. Número de Armstrong en Java de orden n
Código:
clase pública armstrong
{
/* Función para calcular un elevado a la
poder b */
poder int(int a, largo b)
{
si (b == 0)
devolver 1;
si (b%2 == 0)
volver potencia(a, b/2)*potencia(a, b/2);
return a*potencia(a, b/2)*potencia(a, b/2);
}
/* Función para calcular el orden del número */
orden int(int a)
{
entero n = 0;
mientras (a != 0)
{
n++;
a = a/10;
}
devolver n;
}
// Función para verificar si el número dado es el número de Armstrong o no
booleano Armstrong (int a)
{
// Llamar a la función de orden
int n = orden(a);
int temp=a, suma=0;
mientras (temperatura! = 0)
{
int r = temp%10;
suma = suma + potencia(r,n);
temperatura = temperatura/10;
}
// Si cumple la condición de Armstrong
retorno (suma == a);
}
// Programa de controlador
public static void main(String[] args)
{
Armstrongobj = nuevo Armstrong();
int a = 153;
System.out.println(obj.isArmstrong(a));
a = 1276;
System.out.println(obj.isArmstrong(a));
}
}
Salida :
Explicación
En este programa, en lugar de un ciclo while, hemos usado la recursividad. La primera función se utiliza para calcular un número a elevado a la potencia b. Math.pow(a,b) también se puede usar para lo mismo. La segunda función comprueba el orden del número, por ejemplo, 153 es de orden 3. Finalmente, se utiliza una función booleana Armstrong para devolver si el número es Armstrong o no. Luego se usa un objeto de la clase Armstrong para llamar a las funciones.
Programa Java para imprimir números de Armstrong en el rango dado
Código:
clase pública armstrong
{
public static void main(String[] arg)
{
inti=0,x;
System.out.println(“Números de Armstrong entre 0 y 999”);
mientras (i<1000)
{
x=armstrongOrNot(i);
si(x==i)
Sistema.out.println(i);
yo++;
}
}
armstrongOrNot int estático (int n)
{
intc,a=0;
mientras(n!=0)
{
c=n%10;
a=a+(c*c*c);
n/=10;
}
devolver un;
}
}
Producción:
Explicación: En este programa, se verifica cada número entre el intervalo dado bajo y alto. Publique cada cheque, la suma y el número de dígitos se restablecen a 0.
Conclusión
En este artículo, cubrimos en detalle un número de Armstrong en Java. Vimos cómo verificar si un número es un número de Armstrong de orden n y orden 3. También vimos cómo podría obtener todos los números de Armstrong entre un límite inferior y superior.
Si desea mejorar sus habilidades de Java, debe tener en sus manos estos proyectos de Java. Si está interesado en obtener más información sobre Java, desarrollo de pila completa, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, más de 9 proyectos. , y asignaciones, estado de ex alumnos de IIIT-B, proyectos finales prácticos y asistencia laboral con las mejores empresas.
Si desea obtener más información sobre Java y avanzar en su carrera técnica, explore el curso en línea gratuito de Java de la compañía de educación superior en línea más grande de la India, upGrad. Contactenos para mas detalles.