Kotlina programma Ārmstronga skaitļa pārbaudei

Šajā programmā jūs iemācīsities pārbaudīt, vai dotais skaitlis ir vai nav stingrs skaitlis. Jūs iemācīsities to izdarīt, izmantojot kādu laiku cilpu Kotlinā.

Pozitīvu veselu skaitli sauc par Ārmstronga kārtas numuru n, ja

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

Ārmstronga 3 ciparu gadījumā katra cipara kubu summa ir vienāda ar pašu skaitli. Piemēram:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 ir Ārmstronga skaitlis. 

1. piemērs: Pārbaudiet, vai Armstrongam ir 3 cipari

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

Palaidot programmu, izeja būs:

 371 ir Ārmstronga numurs.
  • Pirmkārt, norādītā skaitļa (skaitļa) vērtība tiek saglabāta citā vesela skaitļa mainīgajā - originalNumber. Tas ir tāpēc, ka mums jāsalīdzina gala skaitļa un sākotnējā numura vērtības beigās.
  • Pēc tam, kamēr cilpa tiek izmantota, lai cilpa izietu caur OriginalNumber, līdz tā ir vienāda ar 0.
    • Katrā atkārtojumā atlikušais ciparu cipars tiek saglabāts.
    • Pēc tam atlikumu darbina 3 (ciparu skaits), izmantojot Math.pow()funkciju, un tie tiek pievienoti rezultātam.
      Šeit atlikums tiek pārvērsts par, Doublejo powpieņem tikai Doubleparametrus, un tā vērtība atkal tiek pārveidota atpakaļInt
    • Pēc tam pēdējais cipars tiek noņemts no sākotnējā numura pēc dalīšanas ar 10.
  • Visbeidzot tiek salīdzināts rezultāts un skaits. Ja tas ir vienāds, tas ir bruņots skaitlis. Ja nē, tas tā nav.

Šeit ir ekvivalents Java kods: Java programma, lai pārbaudītu Armstronga numuru

2. piemērs: Pārbaudiet Ārmstronga numuru, vai nav n ciparu

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

Šajā programmā mēs esam izmantojuši divas, kamēr cilpas. Pirmo, kamēr cilpu izmanto ciparu skaita skaitam skaitī.

Pēc tam sākotnējais numurs tiek atjaunots uz norādīto numuru.

Pēc tam otrais cilpa pārbauda, ​​vai skaitlis ir izturīgs vai nē.

Apmeklējiet šo lapu, lai uzzinātu, kā jūs varat parādīt visus patstāvīgos skaitļus starp diviem intervāliem.

Interesanti raksti...