Java program az Armstrong-szám ellenőrzésére

Ebben a programban megtanulja ellenőrizni, hogy egy adott szám önálló szám-e vagy sem. Megtanulja ezt megtenni egy Java for for és egy while használatával.

A példa megértéséhez ismernie kell a következő Java programozási témákat:

  • Java közben és csináld … míg a hurok
  • Java if… else nyilatkozat
  • Java a hurokhoz

A pozitív egész számot Armstrong-számnak nevezzük, ha n

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

Armstrong háromjegyű szám esetén az egyes számjegyek kockáinak összege megegyezik magával a számmal. Például:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 Armstrong-szám. 

1. példa: Ellenőrizze az Armstrong-számot háromjegyű szám után

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

Kimenet

 A 371 Armstrong-szám.
  • Először a megadott szám (szám) értékét egy másik egész változóban, az originalNumber tárolja. Ennek az az oka, hogy össze kell hasonlítanunk a végső szám és az eredeti szám értékét a végén.
  • Ezután egy darab ciklust használunk az OriginalNumber végigvezetésére, amíg az meg nem egyezik 0-val.
    • Minden iterációnál a szám utolsó számjegye maradékban van tárolva.
    • Ezután a maradékot 3 (számjegyek) táplálja a Math.pow()függvény segítségével, és hozzáadja az eredményhez.
    • Ezután az utolsó számjegyet eltávolítja az eredeti számból az 10-es osztás után.
  • Végül összehasonlítjuk az eredményt és a számot. Ha egyenlő, akkor ez egy Armstrong-szám. Ha nem, akkor nem az.

2. példa: Ellenőrizze az Armstrong számot n számjegyre

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

Kimenet

 1634 Armstrong szám.

Ebben a programban a while ciklus helyett kettőt használtunk a ciklusokhoz.

Az első for loop a számjegyek számának megszámolására szolgál. A következők sűrített formája:

 ((eredeti szám! = 0; eredeti szám / = 10) (n ++;)

Ezután a ciklusra vonatkozó második kiszámítja az eredményt, ahol minden iterációnál a maradékot az n számjegyek száma hajtja.

Látogasson el erre az oldalra, hogy megtudja, hogyan jelenítheti meg az összes önálló számot két intervallum között.

érdekes cikkek...