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

У цій програмі ви навчитеся перевіряти, чи є дане число армстронговим чи ні. Ви навчитесь робити це, використовуючи цикл 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 перевіряє, чи номер армстронг чи ні.

Відвідайте цю сторінку, щоб дізнатись, як можна відображати всі армстронг-цифри між двома інтервалами.

Цікаві статті...