Program Kotlin ke kontrole Armstrongova čísla

V tomto programu se naučíte zkontrolovat, zda je dané číslo armstrongovým číslem či nikoli. Naučíte se to udělat pomocí smyčky while v Kotlin.

Kladné celé číslo se nazývá Armstrongovo číslo řádu n if

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

V případě Armstrongova počtu 3 číslic se součet kostek každé číslice rovná číslu samotnému. Například:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 je číslo Armstrong. 

Příklad 1: Zkontrolujte 3místné číslo Armstrong Number

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

Když spustíte program, výstup bude:

 371 je Armstrongovo číslo.
  • Nejprve se hodnota daného čísla (čísla) uloží do jiné celočíselné proměnné, originalNumber. Je to proto, že musíme na konci porovnat hodnoty konečného a původního čísla.
  • Potom se smyčka while používá k procházení přes originalNumber, dokud se nebude rovnat 0.
    • Při každé iteraci je poslední číslice čísla uložena ve zbytku.
    • Poté je zbytek napájen pomocí 3 (počet číslic) pomocí Math.pow()funkce a přidán k výsledku.
      Zde se zbytek převede na, Doubleprotože powpřijímá pouze Doubleparametry, a jeho hodnota se znovu převede zpět naInt
    • Poté je poslední číslice odstraněna z originalNumber po dělení 10.
  • Nakonec jsou porovnány výsledky a počet. Pokud je stejné, jedná se o armstrongovo číslo. Pokud ne, není.

Zde je ekvivalentní kód Java: Program Java ke kontrole Armstrongova čísla

Příklad 2: Zkontrolujte číslo Armstronga, zda neobsahuje n číslic

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

V tomto programu jsme použili dvě while smyčky. První smyčka while se používá k výpočtu počtu číslic v čísle.

Poté se původní číslo obnoví na dané číslo.

Smyčka while while poté zkontroluje, zda je číslo armstrong nebo ne.

Na této stránce se dozvíte, jak můžete zobrazit všechna Armstrongova čísla mezi dvěma intervaly.

Zajímavé články...