Kotlin-program til kontrol af Armstrong-nummer

I dette program lærer du at kontrollere, om et givet nummer er armstrong nummer eller ej. Du lærer at gøre dette ved at bruge en while-loop i Kotlin.

Et positivt heltal kaldes et Armstrong antal af rækkefølge n hvis

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

I tilfælde af et Armstrong-antal på 3 cifre er summen af ​​terninger af hvert ciffer lig med selve antallet. For eksempel:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 er et Armstrong-tal. 

Eksempel 1: Kontroller Armstrong-nummer for 3-cifret nummer

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

Når du kører programmet, vil output være:

 371 er et Armstrong-nummer.
  • For det første gemmes det givne tal (tal) i en anden heltalsvariabel, originalNumber. Dette er fordi, vi er nødt til at sammenligne værdierne for det endelige tal og det originale nummer i slutningen.
  • Derefter bruges en while-løkke til at løbe gennem originalNumber, indtil den er lig med 0.
    • På hver iteration gemmes det sidste ciffer i antal i resten.
    • Derefter styres resten af ​​3 (antal cifre) ved hjælp af Math.pow()funktionen og tilføjes til resultatet.
      Her konverteres resten til, Doublefordi det powkun accepterer Doubleparametre, og dets værdi konverteres igen tilInt
    • Derefter fjernes det sidste ciffer fra originalNummer efter division med 10.
  • Endelig sammenlignes resultat og antal. Hvis det er lige, er det et armstrongt tal. Hvis ikke, er det ikke tilfældet.

Her er den tilsvarende Java-kode: Java-program til kontrol af Armstrong-nummer

Eksempel 2: Kontroller Armstrong-nummeret for n cifre

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

I dette program har vi brugt to mens sløjfer. Den første while-loop bruges til at tælle antallet af cifre i nummeret.

Derefter gendannes originalNumber til det givne nummer.

Den anden while-loop kontrollerer derefter, om antallet er armstrong eller ej.

Besøg denne side for at lære, hvordan du kan vise alle armstrong tal mellem to intervaller.

Interessante artikler...