У цій програмі ви навчитеся перевіряти, чи є дане число армстронговим чи ні. Ви навчитесь робити це, використовуючи цикл for і while в Java.
Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування Java:
- Java в той час як і робити … в той час як Loop
- Заява про Java, якщо … ще
- Java для циклу
Позитивне ціле число називається числом Армстронга порядку n, якщо
abcd… = a n + b n + c n + d n +…
У разі числа Армстронга з 3 цифр сума кубів кожної цифри дорівнює самому числу. Наприклад:
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 - число Армстронга.
Приклад 1: Перевірте число Армстронга на наявність 3-значного числа
public class Armstrong ( public static void main(String() args) ( int number = 371, originalNumber, remainder, result = 0; originalNumber = number; while (originalNumber != 0) ( remainder = originalNumber % 10; result += Math.pow(remainder, 3); originalNumber /= 10; ) if(result == number) System.out.println(number + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); ) )
Вихідні дані
371 - число Армстронга.
- По-перше, значення даного числа (числа) зберігається в іншій цілочисельній змінній, originalNumber. Це тому, що нам потрібно порівняти значення кінцевого числа та вихідного числа в кінці.
- Потім цикл while використовується для циклу через originalNumber, поки він не дорівнює 0.
- На кожній ітерації остання цифра числа зберігається в залишку.
- Потім залишок отримує значення 3 (кількість цифр) за допомогою
Math.pow()
функції та додається до результату. - Потім остання цифра видаляється з originalNumber після ділення на 10.
- Нарешті, результат і число порівнюються. Якщо воно рівне, це число Армстронга. Якщо ні, то ні.
Приклад 2: Перевірте число Армстронга на n цифр
public class Armstrong ( public static void main(String() args) ( int number = 1634, originalNumber, remainder, result = 0, n = 0; originalNumber = number; for (;originalNumber != 0; originalNumber /= 10, ++n); originalNumber = number; for (;originalNumber != 0; originalNumber /= 10) ( remainder = originalNumber % 10; result += Math.pow(remainder, n); ) if(result == number) System.out.println(number + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); ) )
Вихідні дані
1634 - число Армстронга.
У цій програмі ми замість циклу while ми використали два для циклів.
Перший цикл for використовується для підрахунку кількості цифр у кількості. Це ущільнена форма:
for (; originalNumber! = 0; originalNumber / = 10) (n ++;)
Потім другий цикл for обчислює результат, де на кожній ітерації залишок забезпечується кількістю цифр n.
Відвідайте цю сторінку, щоб дізнатись, як можна відображати всі армстронг-цифри між двома інтервалами.