У цій програмі ви навчитеся перевіряти, чи є дане число армстронговим чи ні. Ви навчитесь робити це, використовуючи цикл 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: Перевірте число Армстронга на наявність 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.
- На кожній ітерації остання цифра числа зберігається в залишку.
- Потім залишок отримує значення 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 перевіряє, чи номер армстронг чи ні.
Відвідайте цю сторінку, щоб дізнатись, як можна відображати всі армстронг-цифри між двома інтервалами.