Java-program for å sjekke Armstrong Number

I dette programmet lærer du å sjekke om et gitt nummer er armstrong nummer eller ikke. Du lærer å gjøre dette ved å bruke en for loop og en while loop i Java.

For å forstå dette eksemplet, bør du ha kunnskap om følgende Java-programmeringsemner:

  • Java mens og gjør… mens Loop
  • Java if… else Erklæring
  • Java for Loop

Et positivt heltall kalles et Armstrong antall ordre n hvis

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

I tilfelle et Armstrong-tall på 3 sifre er summen av kubene av hvert siffer lik selve tallet. For eksempel:

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

Eksempel 1: Sjekk Armstrong Number for 3-sifret 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."); ) )

Produksjon

 371 er et Armstrong-nummer.
  • Først lagres verdien (nummer) sin verdi i en annen heltallvariabel, originalNumber. Dette er fordi vi må sammenligne verdiene til det endelige nummeret og det opprinnelige tallet på slutten.
  • Deretter brukes en while-løkke til å løpe gjennom originalNumber til den er lik 0.
    • På hver iterasjon blir det siste sifferet på numre lagret i resten.
    • Deretter blir resten drevet av 3 (antall sifre) ved hjelp av Math.pow()funksjonen og lagt til resultatet.
    • Deretter fjernes det siste sifferet fra originaltall etter divisjon med 10.
  • Til slutt sammenlignes resultat og antall. Hvis det er likt, er det et Armstrong-tall. Hvis ikke, er det ikke det.

Eksempel 2: Sjekk Armstrong-tallet for n sifre

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

Produksjon

 1634 er et Armstrong-nummer.

I dette programmet, i stedet for å bruke mens loop, har vi brukt to for løkker.

Den første for loop brukes til å telle antall sifre i tallet. Det er den kondenserte formen av:

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

Den andre for loop beregner deretter resultatet der resten av hver iterasjon blir drevet av antall sifre n.

Besøk denne siden for å lære hvordan du kan vise alle armstrong tall mellom to intervaller.

Interessante artikler...