Java-programma om Armstrong-nummer te controleren

In dit programma leer je controleren of een bepaald nummer een Armstrong-nummer is of niet. U leert dit te doen door een for-lus en een while-lus in Java te gebruiken.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:

  • Java while en do … while Loop
  • Java if… else-instructie
  • Java voor Loop

Een positief geheel getal wordt een Armstrong-getal van de orde n als genoemd

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

In het geval van een Armstrong-nummer van 3 cijfers, is de som van de kubussen van elk cijfer gelijk aan het nummer zelf. Bijvoorbeeld:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 is een Armstrong-getal. 

Voorbeeld 1: Controleer Armstrong-nummer voor een 3-cijferig 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."); ) )

Uitvoer

 371 is een Armstrong-nummer.
  • Eerst wordt de waarde van het gegeven getal (getal) opgeslagen in een andere integer-variabele, originalNumber. Dit komt omdat we de waarden van het laatste nummer en het originele nummer aan het einde moeten vergelijken.
  • Vervolgens wordt een while-lus gebruikt om door originalNumber te lopen totdat deze gelijk is aan 0.
    • Bij elke iteratie wordt het laatste cijfer van num opgeslagen in de rest.
    • Vervolgens wordt de rest aangedreven door 3 (aantal cijfers) met behulp van de Math.pow()functie en toegevoegd aan het resultaat.
    • Vervolgens wordt het laatste cijfer verwijderd uit originalNumber na deling door 10.
  • Ten slotte worden resultaat en aantal vergeleken. Als het gelijk is, is het een Armstrong-nummer. Zo niet, dan is het dat niet.

Voorbeeld 2: Controleer het Armstrong-nummer op n cijfers

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

Uitvoer

 1634 is een Armstrong-nummer.

In dit programma hebben we in plaats van while-lus twee for-loops gebruikt.

De eerste for-lus wordt gebruikt om het aantal cijfers in het nummer te tellen. Het is de gecondenseerde vorm van:

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

De tweede for-lus berekent vervolgens het resultaat waarbij bij elke iteratie de rest wordt aangedreven door het aantal cijfers n.

Bezoek deze pagina om te zien hoe u alle Armstrong-getallen tussen twee intervallen kunt weergeven.

Interessante artikelen...