Что такое число Армстронга?
В числе Армстронга сумма степеней отдельных цифр равна самому числу.
Другими словами, будет справедливо следующее уравнение
xy… z = xn + yn+… + zn
n - количество цифр в номере
Например, это трехзначный номер Армстронга.
370 = 33 + 73 + o3= 27 + 343 + 0= 370
Примеры чисел Армстронга
0, 1, 4, 5, 9, 153, 371, 407, 8208, etc.
Напишем это в программе:
Программа на Java для проверки того, является ли число числом Армстронга
// ChecktempNumber - Армстронг или цикл while не используетсяпакет com.guru99;public class ArmstrongNumber {public static void main (String [] args) {int inputArmstrongNumber = 153; // Вводим число для проверки Армстронгаint tempNumber, digit, digitCubeSum = 0;tempNumber = inputArmstrongNumber;в то время как (tempNumber! = 0){/ * На каждой итерации остаток рассчитывается от tempNumber of digits n* /System.out.println ("Текущий номер" + tempNumber);цифра = tempNumber% 10;System.out.println («Текущая цифра равна» + цифра);// сумма кубиков каждой цифры равна самому tempNumberdigitCubeSum = digitCubeSum + цифра * цифра * цифра;System.out.println ("Текущая digitCubeSum равна" + digitCubeSum);tempNumber / = 10;}// проверяем, что giventempNumber и digitCubeSum равны или нетесли (digitCubeSum == inputArmstrongNumber)System.out.println (inputArmstrongNumber + "- число Армстронга");ещеSystem.out.println (inputArmstrongNumber + "не является числом Армстронга");}}Выход
Current Number is 153Current Digit is 3Current digitCubeSum is 27Current Number is 15Current Digit is 5Current digitCubeSum is 152Current Number is 1Current Digit is 1Current digitCubeSum is 153153 is an Armstrong Number
Программа на Java для печати чисел Армстронга от 0 до 999
// ChecktempNumber - Армстронг или цикл while не используетсяпакет com.guru99;public class ArmstrongNumber {public static void main (String [] args) {int tempNumber, digit, digitCubeSum;for (int inputArmstrongNumber = 0; inputArmstrongNumber <1000; inputArmstrongNumber ++) {tempNumber = inputArmstrongNumber;digitCubeSum = 0;while (tempNumber! = 0) {/ * На каждой итерации остаток рассчитывается от tempNumber of digits n* /цифра = tempNumber% 10;// сумма кубиков каждой цифры равна самому tempNumberdigitCubeSum = digitCubeSum + цифра * цифра * цифра;tempNumber / = 10;}// проверяем, что giventempNumber и digitCubeSum равны или нетесли (digitCubeSum == inputArmstrongNumber)System.out.println (inputArmstrongNumber + "- число Армстронга");}}}Выход
0 is an Armstrong Number1 is an Armstrong Number153 is an Armstrong Number370 is an Armstrong Number371 is an Armstrong Number407 is an Armstrong Number