În acest program, veți învăța să verificați dacă un anumit număr este sau nu numărul Armstrong. Veți învăța să faceți acest lucru folosind o buclă for și o buclă while în Java.
Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:
- Java while și do … while Buclă
- Java dacă … altfel Declarație
- Java pentru buclă
Un număr întreg pozitiv se numește un număr Armstrong de ordinul n dacă
abcd … = a n + b n + c n + d n + …
În cazul unui număr Armstrong de 3 cifre, suma cuburilor fiecărei cifre este egală cu numărul în sine. De exemplu:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 este un număr Armstrong.
Exemplul 1: Verificați numărul Armstrong pentru un număr de 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 + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); ) )
Ieșire
371 este un număr Armstrong.
- În primul rând, valoarea dată a numărului (număr) este stocată într-o altă variabilă întreagă, originalNumber. Acest lucru se datorează faptului că trebuie să comparăm valorile numărului final și al numărului original la sfârșit.
- Apoi, o buclă while este utilizată pentru a parcurge numărul original până când este egal cu 0.
- La fiecare iterație, ultima cifră de num este stocată în rest.
- Apoi, restul este alimentat de 3 (număr de cifre) folosind
Math.pow()
funcția și adăugat la rezultat. - Apoi, ultima cifră este eliminată din Numărul original după împărțire la 10.
- În cele din urmă, rezultatul și numărul sunt comparate. Dacă este egal, este un număr Armstrong. Dacă nu, nu este.
Exemplul 2: Verificați numărul Armstrong pentru 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."); ) )
Ieșire
1634 este un număr Armstrong.
În acest program, în loc să folosim bucla while, am folosit două pentru bucle.
Prima buclă for este utilizată pentru a număra numărul de cifre din număr. Este forma condensată a:
for (; OriginalNumber! = 0; originalNumber / = 10) (n ++;)
Cea de-a doua buclă calculează apoi rezultatul în care la fiecare iterație, restul este alimentat de numărul de cifre n.
Accesați această pagină pentru a afla cum puteți afișa toate numerele armstrong între două intervale.