Котлинов програм за проверу Армстронговог броја

У овом програму ћете научити да проверавате да ли је дати број армстронг број или не. То ћете научити користећи вхиле петљу у Котлину.

Позитивни цели број назива се Армстронгов број реда н ако

абцд… = а н + б н + ц н + д н +…

У случају Армстронгова броја од 3 цифре, збир коцки сваке цифре једнак је самом броју. На пример:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 је Армстронгов број. 

Пример 1: Проверите да ли је у Армстронговом броју 3-цифрени број

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

Када покренете програм, излаз ће бити:

 371 је Армстронгов број.
  • Прво, дата вредност (број) се чува у другој целобројној променљивој, оригиналНумбер. То је зато што морамо да упоредимо вредности коначног броја и оригиналног броја на крају.
  • Затим се за петљу кроз оригиналНумбер користи петља вхиле док не буде једнака 0.
    • На свакој итерацији, последња цифра броја се чува у остатку.
    • Затим се остатак напаја са 3 (број цифара) помоћу Math.pow()функције и додаје резултату.
      Овде се остатак претвара у Doubleјер powприхвата само Doubleпараметре, а његова вредност се поново претвара уInt
    • Затим се последња цифра уклања из оригиналНумбер након дељења са 10.
  • На крају се упоређују резултат и број. Ако је једнак, то је армстронг број. Ако није, није.

Ево еквивалентног Јава кода: Јава програм за проверу Армстронгова броја

Пример 2: Проверите Армстронгов број за н цифара

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

У овом програму смо користили две вхиле петље. Прва вхиле петља се користи за бројање броја цифара у броју.

Затим се оригиналНумбер враћа на задати број.

Друга вхиле петља затим проверава да ли је број армстронг или не.

Посетите ову страницу да бисте сазнали како можете приказати све армстронг бројеве између два интервала.

Занимљиви Чланци...