Kotlin-programmet för att kontrollera Armstrong-nummer

I det här programmet lär du dig att kontrollera om ett visst nummer är armstrong nummer eller inte. Du lär dig att göra detta genom att använda en stundslinga i Kotlin.

Ett positivt heltal kallas ett Armstrong antal ordningar n if

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

I fallet med ett Armstrong-antal på tre siffror är summan av kuberna för varje siffror lika med själva antalet. Till exempel:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 är ett Armstrong-tal. 

Exempel 1: Kontrollera att Armstrong Number har tre siffror

 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ör programmet blir resultatet:

 371 är ett Armstrong-nummer.
  • Först lagras ett visst tal (nummer) i ett annat heltal variabel, originalNumber. Detta beror på att vi måste jämföra värdena på slutnummer och originalnummer i slutet.
  • Sedan används en while-slinga för att slinga igenom originalNumber tills den är lika med 0.
    • På varje iteration lagras den sista siffran i num i resten.
    • Därefter drivs resten av 3 (antal siffror) med hjälp av Math.pow()funktionen och läggs till resultatet.
      Här omvandlas resten till Doubleatt powendast accepterar Doubleparametrar och dess värde omvandlas igen tillInt
    • Därefter tas den sista siffran bort från originalnumret efter delning med 10.
  • Slutligen jämförs resultat och antal. Om det är lika är det ett armstrong tal. Om inte, så är det inte.

Här är motsvarande Java-kod: Java-program för att kontrollera Armstrong-nummer

Exempel 2: Kontrollera Armstrong-numret för n siffror

 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 det här programmet har vi använt två medan slingor. Den första stund-slingan används för att räkna antalet siffror i numret.

Sedan återställs originalNumber till det angivna numret.

Den andra medan slingan kontrollerar sedan om numret är armstrong eller inte.

Besök den här sidan för att lära dig hur du kan visa alla armstrong nummer mellan två intervaller.

Intressanta artiklar...