English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base di Java

Controllo dei flussi Java

Array Java

Orientamento ad oggetti Java (I)

Orientamento ad oggetti Java (II)

Orientamento ad oggetti Java (III)

Gestione delle eccezioni Java

List Java

Queue (coda) Java

Map collection Java

Set collection Java

Input/Output (I/O) Java

Reader/Writer Java

Altri argomenti Java

Programma Java per controllare i numeri Armstrong

Completo di esempi Java

In questo programma, imparerai a controllare se un numero fornito è un numero Armstrong. Imparerai come farlo utilizzando cicli for e while in Java.

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

abcd... = an + bn + cn + dn + ...

Per i numeri di Armstrong a 3 cifre, la somma dei cubi di ciascun numero è uguale al numero stesso. Ad esempio:

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

Esempio 1: Verifica se un numero di Armstrong è 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 + " è un numero di Armstrong.");
        else
            System.out.println(number + " non è un numero di Armstrong.");
    }
}

Quando si esegue questo programma, l'output è:

371 è un numero di Armstrong.
  • Prima di tutto, il valore del numero (number) viene memorizzato in un'altra variabile intera originalNumber. Questo perché dobbiamo confrontare il numero finale con il valore originale.

  • Poi, usa un ciclo while per esplorare originalNumber fino a quando non è uguale a 0.

    • In ogni iterazione, l'ultimo numero di num viene memorizzato in remainder.

    • Poi, usa la funzione Math.pow() per aggiungere 3 (numero di cifre) a remainder e aggiungerlo a result.

    • Poi, divide per 10 e rimuovi l'ultimo numero di originalNumber.

  • Infine, confronta result con number. Se sono uguali, è un numero di Armstrong. Se non lo sono, non lo è.

Esempio 2: Verifica se un numero di Armstrong è a 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 + " è un numero Armstrong.");
        else
            System.out.println(number + " non è un numero Armstrong.");
    }
}

Quando si esegue questo programma, l'output è:

1634 è un numero Armstrong.

In questo programma, non abbiamo utilizzato il ciclo while, ma due cicli for.

Il primo ciclo for viene utilizzato per calcolare il numero di cifre del numero. È una forma compressa del seguente:

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

Poi, il secondo ciclo for calcola result, dove in ogni iterazione, il resto è il numero n elevato alla potenza.

Visita questa pagina per sapere comeMostra tutti i numeri Armstrong tra due intervalli.

Completo di esempi Java