Ebben a programban megtanulja ellenőrizni, hogy egy adott szám önálló szám-e vagy sem. Megtanulod ezt megtenni egy darab loop segítségével Kotlinban.
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
fun main(args: Array) ( val number = 371 var originalNumber: Int var remainder: Int var result = 0 originalNumber = number while (originalNumber != 0) ( remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), 3.0).toInt() originalNumber /= 10 ) if (result == number) println("$number is an Armstrong number.") else println("$number is not an Armstrong number.") )
A program futtatásakor a kimenet a következő lesz:
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.
Itt a maradék átalakul,Double
mertpow
csakDouble
paramétereket fogad el , és az értékét ismét visszaállítjaInt
- 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 önálló szám. Ha nem, akkor nem az.
Itt található a megfelelő Java-kód: Java program az Armstrong-szám ellenőrzéséhez
2. példa: Ellenőrizze az Armstrong számot n számjegyre
fun main(args: Array) ( val number = 1634 var originalNumber: Int var remainder: Int var result = 0 var n = 0 originalNumber = number while (originalNumber != 0) ( originalNumber /= 10 ++n ) originalNumber = number while (originalNumber != 0) ( remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), n.toDouble()).toInt() originalNumber /= 10 ) if (result == number) println("$number is an Armstrong number.") else println("$number is not an Armstrong number.") )
Ebben a programban két while ciklust használtunk. Az első while ciklust a számjegyek számának számlálására használják.
Ezután az originalNumber visszaáll a megadott számra.
Ezután a második while hurok ellenőrzi, hogy a szám önálló-e vagy sem.
Látogasson el erre az oldalra, hogy megtudja, hogyan jelenítheti meg az összes önálló számot két intervallum között.