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.