Kotlin-programma om Armstrong-nummer te controleren

In dit programma leer je controleren of een bepaald nummer een Armstrong-nummer is of niet. Je leert dit door een while-lus in Kotlin te gebruiken.

Een positief geheel getal wordt een Armstrong-getal van de orde n als genoemd

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

In het geval van een Armstrong-nummer van 3 cijfers, is de som van de kubussen van elk cijfer gelijk aan het nummer zelf. Bijvoorbeeld:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 is een Armstrong-getal. 

Voorbeeld 1: Controleer Armstrong-nummer voor een 3-cijferig 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.") ) 

Wanneer u het programma uitvoert, is de uitvoer:

 371 is een Armstrong-nummer.
  • Eerst wordt de waarde van het gegeven getal (getal) opgeslagen in een andere integer-variabele, originalNumber. Dit komt omdat we de waarden van het laatste nummer en het originele nummer aan het einde moeten vergelijken.
  • Vervolgens wordt een while-lus gebruikt om door originalNumber te lopen totdat deze gelijk is aan 0.
    • Bij elke iteratie wordt het laatste cijfer van num opgeslagen in de rest.
    • Vervolgens wordt de rest aangedreven door 3 (aantal cijfers) met behulp van de Math.pow()functie en toegevoegd aan het resultaat.
      Hier wordt de rest geconverteerd naar Doubleomdat powalleen Doubleparameters worden geaccepteerd , en de waarde wordt weer geconverteerd naarInt
    • Vervolgens wordt het laatste cijfer verwijderd uit originalNumber na deling door 10.
  • Ten slotte worden resultaat en aantal vergeleken. Als het gelijk is, is het een armstronggetal. Zo niet, dan is het dat niet.

Hier is de equivalente Java-code: Java-programma om Armstrong-nummer te controleren

Voorbeeld 2: Controleer het Armstrong-nummer op n cijfers

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

In dit programma hebben we twee while-loops gebruikt. De eerste while-lus wordt gebruikt om het aantal cijfers in het nummer te tellen.

Vervolgens wordt originalNumber hersteld naar het opgegeven nummer.

De tweede while-lus controleert vervolgens of het nummer armstrong is of niet.

Bezoek deze pagina om te zien hoe u alle Armstrong-getallen tussen twee intervallen kunt weergeven.

Interessante artikelen...