Programul Kotlin pentru verificarea numărului Armstrong

În acest program, veți învăța să verificați dacă un anumit număr este sau nu numărul Armstrong. Veți învăța să faceți acest lucru folosind o buclă while în Kotlin.

Un număr întreg pozitiv se numește un număr Armstrong de ordinul n dacă

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

În cazul unui număr Armstrong de 3 cifre, suma cuburilor fiecărei cifre este egală cu numărul în sine. De exemplu:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 este un număr Armstrong. 

Exemplul 1: Verificați numărul Armstrong pentru un număr de 3 cifre

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

Când rulați programul, ieșirea va fi:

 371 este un număr Armstrong.
  • În primul rând, valoarea dată a numărului (număr) este stocată într-o altă variabilă întreagă, originalNumber. Acest lucru se datorează faptului că trebuie să comparăm valorile numărului final și al numărului original la sfârșit.
  • Apoi, o buclă while este utilizată pentru a parcurge numărul original până când este egal cu 0.
    • La fiecare iterație, ultima cifră de num este stocată în rest.
    • Apoi, restul este alimentat de 3 (număr de cifre) folosind Math.pow()funcția și adăugat la rezultat.
      Aici, restul este convertit în, Doubledeoarece powacceptă numai Doubleparametrii, iar valoarea acestuia este convertită din nou înInt
    • Apoi, ultima cifră este eliminată din Numărul original după împărțire la 10.
  • În cele din urmă, rezultatul și numărul sunt comparate. Dacă este egal, este un număr armstrong. Dacă nu, nu este.

Iată codul Java echivalent: Programul Java pentru verificarea numărului Armstrong

Exemplul 2: Verificați numărul Armstrong pentru n cifre

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

În acest program, am folosit două bucle while. Prima buclă while este utilizată pentru a număra numărul de cifre din număr.

Apoi, OriginalNumber este restabilit la numărul dat.

A doua buclă while verifică apoi dacă numărul este armstrong sau nu.

Accesați această pagină pentru a afla cum puteți afișa toate numerele armstrong între două intervale.

Articole interesante...