Kotlin-ohjelma näyttää Armstrong-luvun kahden välin välillä

Tässä ohjelmassa opit näyttämään kaikki itsepintaiset luvut kahden tietyn aikavälin välillä, matalan ja korkean, Kotlinissa.

Positiivista kokonaislukua kutsutaan Armstrong-luvuksi, jos n

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

Jos kyseessä on Armstrongin 3-numeroinen numero, kunkin numeron kuutioiden summa on sama kuin itse numero. Esimerkiksi:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 on Armstrongin luku. 

Tämä ohjelma perustuu ajatukseen siitä, kuinka tarkistaa, onko kokonaisluku Armstrong-luku vai ei.

Esimerkki: Armstrongin numerot kahden kokonaisluvun välillä

 fun main(args: Array) ( val low = 999 val high = 99999 for (number in low + 1… high - 1) ( var digits = 0 var result = 0 var originalNumber = number // number of digits calculation while (originalNumber != 0) ( originalNumber /= 10 ++digits ) originalNumber = number // result contains sum of nth power of its digits while (originalNumber != 0) ( val remainder = originalNumber % 10 result += Math.pow(remainder.toDouble(), digits.toDouble()).toInt() originalNumber /= 10 ) if (result == number) print("$number ") ) ) 

Kun suoritat ohjelmaa, tulos on:

 1634 8208 9474 54748 92727 93084 

Yllä olevassa ohjelmassa kukin annettujen korkeiden ja matalien välien lukumäärä tarkistetaan.

Jokaisen tarkistuksen jälkeen numeroiden lukumäärä ja summatulos palautetaan nollaksi.

Mielenkiintoisia artikkeleita...