Програма Kotlin за проверка на номера на Армстронг

В тази програма ще се научите да проверявате дали дадено число е армстронг число или не. Ще се научите да правите това, като използвате цикъл while в Kotlin.

Положително цяло число се нарича число на Армстронг от порядък n, ако

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

В случай на число на Армстронг от 3 цифри, сумата от кубчета от всяка цифра е равна на самото число. Например:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 е число на Армстронг. 

Пример 1: Проверете числото на Армстронг за трицифрено число

 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 е число на Армстронг.
  • Първо, стойността на дадено число (число) се съхранява в друга целочислена променлива, originalNumber. Това е така, защото трябва да сравним стойностите на крайното число и оригиналното число в края.
  • След това се използва цикъл while, за да премине през originalNumber, докато не е равен на 0.
    • При всяка итерация последната цифра от числото се съхранява в остатъка.
    • След това остатъкът се захранва от 3 (брой цифри) с помощта на Math.pow()функция и се добавя към резултата.
      Тук остатъкът се преобразува в, Doubleзащото powприема само Doubleпараметри и стойността му отново се преобразува обратно вInt
    • След това последната цифра се премахва от originalNumber след разделяне на 10.
  • Накрая резултатът и числото се сравняват. Ако е равно, това е армстронг число. Ако не, не е така.

Ето еквивалентния Java код: Java програма за проверка на номера на Армстронг

Пример 2: Проверете числото на Армстронг за n цифри

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

В тази програма използвахме два цикъла while. Първият цикъл while се използва за преброяване на броя на цифрите в числото.

След това originalNumber се възстановява на дадения номер.

След това вторият цикъл while проверява дали номерът е армстронг или не.

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

Интересни статии...