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.