Qual è il numero Armstrong in Java? Sono i prerequisiti e l'algoritmo

Pubblicato: 2021-04-08

Sommario

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:

  1. Prendi una variabile intera x
  2. Il valore è assegnato alla variabile x
  3. Le cifre del valore vengono divise
  4. Viene trovato il valore del cubo di ogni cifra
  5. Aggiungi i valori di tutti i cubi
  6. L'output viene salvato nella variabile somma
  7. 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.

Diventa uno sviluppatore full stack

UPGRAD E DIPLOMA PG DI IIIT-BANGALORE IN SVILUPPO SOFTWARE
ISCRIVITI ORA @ AGGIORNAMENTO