Qual è il numero Armstrong in Java? Sono i prerequisiti e l'algoritmo
Pubblicato: 2021-04-08Sommario
Qual è il numero di Armstrong?
Un dato numero x è detto numero Armstrong di ordine n se è uguale alla somma delle sue cifre elevate a potenza n, cioè:
abc= pow(a,n) + pow(b,n) + pow(c,n)
Un intero positivo di n cifre è un numero Armstrong (di ordine 3) se è uguale alla somma dei cubi delle sue cifre. Per esempio:
Immissione: 153
Uscita: Sì
1*1*1 + 5*5*5 + 3*3*3 = 153
Quindi, 153 è un numero di Armstrong
Ingresso: 121
Uscita: n
1*1*1 + 2*2*2 + 1*1*1 = 10
Quindi, 120 non è un numero di Armstrong.
Prerequisiti e algoritmo
In questo articolo impareremo a verificare se un numero di input è un numero Armstrong o meno. Per questo, useremo un ciclo while e un ciclo for in Java. Per comprendere questo programma, è necessaria la conoscenza dei seguenti argomenti in Java:
- Istruzione if-else di Java
- Java per Loop
- Java while e do-while loop
Algoritmo:
- Prendi una variabile intera x
- Il valore è assegnato alla variabile x
- Le cifre del valore vengono divise
- Viene trovato il valore del cubo di ogni cifra
- Aggiungi i valori di tutti i cubi
- L'output viene salvato nella variabile somma
- Se sum=X, stampa il numero Armstrong
Se sum != X, stampa un numero non Armstrong
Programma per controllare il numero Armstrong in Java
1. Numero Armstrong in Java dell'ordine 3
Codice:
classe pubblica Armstrong{
public static void main(String[] args) {
int x=0,a,temp;
int n=153;//È il numero da controllare Armstrong
temp=n;
mentre(n>0)
{
a=n%10;
n=n/10;
x=x+(a*a*a);
}
se(temp==x)
System.out.println("Numero Armstrong");
altro
System.out.println("Numero non Armstrong");
}
}
Produzione:
Spiegazione
Innanzitutto, il valore di un dato numero N viene memorizzato in un'altra variabile intera, x. Questo viene fatto poiché dobbiamo confrontare i valori del numero originale e il numero finale alla fine. Un ciclo while viene utilizzato per scorrere il numero N finché non è uguale a 0. Ad ogni iterazione, l'ultima cifra di N viene memorizzata in a.
Quindi il risultato viene calcolato cubando a o usando Math. pow() e aggiungendolo a x. Quando l'ultima cifra viene rimossa da N, viene divisa per 10. Infine =, temp e X vengono confrontati. Se sono uguali, è un numero di Armstrong. Altrimenti, non lo è.
2. Numero Armstrong in Java dell'ordinanza n
Codice:
classe pubblica Armstrong
{
/* Funzione per calcolare un elevato al
potenza b */
int power(int a, long b)
{
se( b == 0)
ritorno 1;
se (b%2 == 0)
potenza di ritorno(a, b/2)*potenza(a, b/2);
restituisce a*potenza(a, b/2)*potenza(a, b/2);
}
/* Funzione per calcolare l'ordine del numero */
ordine int(int a)
{
int n = 0;
mentre (a != 0)
{
n++;
a = a/10;
}
ritorno n;
}
// Funzione per verificare se il numero indicato è un numero Armstrong o meno
booleano Armstrong (int a)
{
// Richiamo della funzione d'ordine
int n = ordine(a);
int temp=a, somma=0;
mentre (temp!=0)
{
int r = temp%10;
somma = somma + potenza(r,n);
temp = temp/10;
}
// Se soddisfa le condizioni di Armstrong
ritorno (somma == a);
}
// Programma driver
public static void main(String[] args)
{
Armstrong obj = nuovo Armstrong();
int a = 153;
System.out.println(obj.isArmstrong(a));
a = 1276;
System.out.println(obj.isArmstrong(a));
}
}
Uscita :
Spiegazione
In questo programma, invece di un ciclo while, abbiamo usato la ricorsione. La prima funzione serve per calcolare un numero a elevato a potenza b. Math.pow(a,b) può essere utilizzato anche per lo stesso. La seconda funzione controlla l'ordine del numero, ad esempio 153 è di ordine 3. Infine, viene utilizzata una funzione booleana Armstrong per restituire se il numero è Armstrong o meno. Quindi viene utilizzato un oggetto della classe Armstrong per chiamare le funzioni.
Programma Java per stampare numeri Armstrong nell'intervallo specificato
Codice:
classe pubblica Armstrong
{
public static void main(String[] arg)
{
int i=0,x;
System.out.println("Numeri Armstrong compresi tra 0 e 999");
mentre(i<1000)
{
x=armstrongOrNot(i);
se(x==i)
System.out.println(i);
i++;
}
}
statico int armstrongOrNot(int n)
{
int c,a=0;
mentre(n!=0)
{
c=n%10;
a=a+(c*c*c);
n/=10 ;
}
restituire un;
}
}
Produzione:
Spiegazione: In questo programma, viene controllato ogni numero compreso tra l'intervallo basso e alto specificato. Dopo ogni assegno, la somma e il numero di cifre vengono ripristinati a 0.
Conclusione
In questo articolo, abbiamo trattato in dettaglio un numero Armstrong in Java. Abbiamo visto come verificare se un numero è un numero Armstrong di ordine n e ordine 3. Abbiamo anche visto come è possibile ottenere tutti i numeri Armstrong tra un limite inferiore e superiore.
Se desideri migliorare le tue abilità Java, devi mettere le mani su questi progetti Java. Se sei interessato a saperne di più su Java, lo sviluppo full-stack, dai un'occhiata al programma Executive PG di upGrad & IIIT-B in Full-stack Software Development, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, oltre 9 progetti e incarichi, status di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.
Se stai cercando di saperne di più su Java e salire nella tua carriera tecnica, allora esplora il corso online gratuito di Java della più grande azienda indiana di istruzione superiore online, upGrad. Contattateci per maggiori dettagli.