Programma Java per controllare il numero Armstrong

In questo programma imparerai a controllare se un dato numero è un numero Armstrong oppure no. Imparerai a farlo usando un ciclo for e un ciclo while in Java.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione Java:

  • Java while e do … while Loop
  • Istruzione Java if … else
  • Java per Loop

Un numero intero positivo è chiamato numero Armstrong di ordine n se

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

In caso di un numero Armstrong di 3 cifre, la somma dei cubi di ciascuna cifra è uguale al numero stesso. Per esempio:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 è un numero Armstrong. 

Esempio 1: controllare il numero Armstrong per un numero a 3 cifre

 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."); ) )

Produzione

 371 è un numero Armstrong.
  • Primo, il valore di un dato numero (numero) viene memorizzato in un'altra variabile intera, originalNumber. Questo perché dobbiamo confrontare i valori del numero finale e del numero originale alla fine.
  • Quindi, un ciclo while viene utilizzato per eseguire il ciclo di originalNumber finché non è uguale a 0.
    • Ad ogni iterazione, l'ultima cifra di num viene memorizzata nel resto.
    • Quindi, il resto viene alimentato da 3 (numero di cifre) utilizzando la Math.pow()funzione e aggiunto al risultato.
    • Quindi, l'ultima cifra viene rimossa da originalNumber dopo la divisione per 10.
  • Infine, vengono confrontati il ​​risultato e il numero. Se uguale, è un numero Armstrong. In caso contrario, non lo è.

Esempio 2: controllare il numero Armstrong per n cifre

 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."); ) )

Produzione

 1634 è un numero Armstrong.

In questo programma, invece di usare il ciclo while, abbiamo usato due cicli for.

Il primo ciclo for viene utilizzato per contare il numero di cifre nel numero. È la forma condensata di:

 for (; originalNumber! = 0; originalNumber / = 10) (n ++;)

Il secondo ciclo for calcola quindi il risultato dove ad ogni iterazione, il resto è alimentato dal numero di cifre n.

Visita questa pagina per scoprire come visualizzare tutti i numeri armstrong tra due intervalli.

Articoli interessanti...