Программа Kotlin для проверки номера Армстронга

В этой программе вы научитесь проверять, является ли данное число числом Армстронга или нет. Вы научитесь делать это, используя цикл while в Котлине.

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

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

В случае числа Армстронга из 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 - это число Армстронга.
  • Во-первых, значение заданного числа (числа) сохраняется в другой целочисленной переменной originalNumber. Это потому, что нам нужно сравнить значения конечного числа и исходного числа в конце.
  • Затем цикл while используется для перебора originalNumber до тех пор, пока он не станет равным 0.
    • На каждой итерации последняя цифра числа сохраняется в остатке.
    • Затем остаток рассчитывается с помощью Math.pow()функции 3 (количество цифр) и добавляется к результату.
      Здесь остаток преобразуется в, 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 проверяет, является ли число армстронгом или нет.

Посетите эту страницу, чтобы узнать, как вы можете отобразить все числа Армстронга между двумя интервалами.

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