Kotlini programm Armstrongi numbri kontrollimiseks

Selles programmis õpite kontrollima, kas antud number on armstrongi number või mitte. Õpid seda tegema, kasutades Kotlinis mõnda aega silmust.

Positiivset täisarvu nimetatakse Armstrongi arvuks, kui n

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

Armstrongi 3-kohalise arvu korral võrdub iga numbri kuubikute summa number ise. Näiteks:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 on Armstrongi arv. 

Näide 1: Kontrollige Armstrongi numbrit 3-kohalise numbri jaoks

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

Programmi käivitamisel on väljund järgmine:

 371 on Armstrongi number.
  • Esiteks, antud numbri (arvu) väärtus salvestatakse teise täisarvu muutujasse originalNumber. Seda seetõttu, et peame võrdlema lõpparvu ja algarvu väärtusi lõpus.
  • Seejärel kasutatakse mõnda aega loopi algse numbri läbimiseks, kuni see on võrdne 0-ga.
    • Igal iteratsioonil salvestatakse numbri viimane number ülejäänud.
    • Seejärel toidetakse ülejäänud funktsioon 3 abil (numbrite arv), kasutades Math.pow()funktsiooni ja lisatakse tulemuseks.
      Siin teisendatakse ülejäänud osa väärtuseks, Doublekuna powaktsepteeritakse ainult Doubleparameetreid, ja selle väärtus teisendatakse uuesti väärtuseksInt
    • Seejärel eemaldatakse algarvust viimane number pärast jagamist 10-ga.
  • Lõpuks võrreldakse tulemust ja arvu. Kui see on võrdne, on see armstrongi arv. Kui ei, siis pole.

Siin on samaväärne Java-kood: Java-programm Armstrongi numbri kontrollimiseks

Näide 2: Kontrollige Armstrongi numbrit n-kohalise numbri jaoks

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

Selles programmis oleme kasutanud kahte silmust. Esimest silmust kasutatakse arvus olevate numbrite arvu lugemiseks.

Seejärel taastatakse algne number antud numbrile.

Seejärel kontrollib teine ​​while-silmus, kas number on armstrong või mitte.

Sellelt lehelt saate teada, kuidas saate kahe intervalli vahel kuvada kõiki armstrongi numbreid.

Huvitavad Artiklid...