Java-program til kontrol af Armstrong-nummer

I dette program lærer du at kontrollere, om et givet nummer er armstrong nummer eller ej. Du lærer at gøre dette ved at bruge en for-loop og en while-loop i Java.

For at forstå dette eksempel skal du have kendskab til følgende Java-programmeringsemner:

  • Java mens og gør … mens Loop
  • Java hvis … ellers Erklæring
  • Java til Loop

Et positivt heltal kaldes et Armstrong antal af rækkefølge n hvis

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

I tilfælde af et Armstrong-antal på 3 cifre er summen af ​​terninger af hvert ciffer lig med selve antallet. For eksempel:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 er et Armstrong-tal. 

Eksempel 1: Kontroller Armstrong-nummer for 3-cifret nummer

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

Produktion

 371 er et Armstrong-nummer.
  • For det første gemmes det givne tal (tal) i en anden heltalsvariabel, originalNumber. Dette er fordi, vi er nødt til at sammenligne værdierne for det endelige tal og det originale nummer i slutningen.
  • Derefter bruges en while-løkke til at løbe gennem originalNumber, indtil den er lig med 0.
    • På hver iteration gemmes det sidste ciffer i antal i resten.
    • Derefter styres resten af ​​3 (antal cifre) ved hjælp af Math.pow()funktionen og tilføjes til resultatet.
    • Derefter fjernes det sidste ciffer fra originalNummer efter division med 10.
  • Endelig sammenlignes resultat og antal. Hvis det er lige, er det et Armstrong-tal. Hvis ikke, er det ikke tilfældet.

Eksempel 2: Kontroller Armstrong-nummeret for 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."); ) )

Produktion

 1634 er et Armstrong-nummer.

I dette program har vi brugt to til sløjfer i stedet for at bruge mens løkke.

Den første for loop bruges til at tælle antallet af cifre i nummeret. Det er den kondenserede form for:

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

Den anden for loop beregner derefter resultatet, hvor resten af ​​hver iteration, resten er drevet af antallet af cifre n.

Besøg denne side for at lære, hvordan du kan vise alle armstrong tal mellem to intervaller.

Interessante artikler...