Kotlin program Armstrong számának ellenőrzésére

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, Doublemert powcsak Doubleparamé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.

érdekes cikkek...