Kotlinov program za preverjanje Armstrongove številke

V tem programu se boste naučili preverjati, ali je določena številka armstrong številka ali ne. To se boste naučili z uporabo zanke while v Kotlinu.

Pozitivno celo število se imenuje Armstrongova številka reda n, če

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

V primeru Armstrongovega števila 3 števk je vsota kock vsake števke enaka samemu številu. Na primer:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 je Armstrongova številka. 

Primer 1: Preverite Armstrongovo številko za 3-mestno številko

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

Ko zaženete program, bo rezultat:

 371 je Armstrongova številka.
  • Najprej se vrednost dane številke (števila) shrani v drugo celoštevilčno spremenljivko, originalNumber. To je zato, ker moramo na koncu primerjati vrednosti končnega in prvotnega števila.
  • Nato se zanka while uporablja za zanko skozi originalNumber, dokler ni enaka 0.
    • Na vsaki ponovitvi se zadnja številka števila shrani v preostanek.
    • Nato se preostanek napaja s 3 (število števk) s pomočjo Math.pow()funkcije in doda rezultatu.
      Tu se ostanek pretvori v, Doubleker powsprejema samo Doubleparametre, njegova vrednost pa se ponovno pretvori nazaj vInt
    • Nato se zadnja številka odstrani iz originalNumber po delitvi z 10.
  • Na koncu se primerjajo rezultat in število. Če je enako, je armstrong številka. Če ne, ni.

Tu je enakovredna koda Java: Java program za preverjanje Armstrongove številke

Primer 2: Preverite Armstrongovo številko za n števk

 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 tem programu smo uporabili dve zanki while. Prva zanka while se uporablja za štetje števila števk v številu.

Nato se originalNumber obnovi na dano številko.

Nato druga zanka while preveri, ali je številka armstrong ali ne.

Obiščite to stran, če želite izvedeti, kako lahko med dvema intervaloma prikažete vse armstrong številke.

Zanimive Članki...