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

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

Чтобы понять этот пример, вы должны знать следующие темы программирования Java:

  • Java while и do … while Loop
  • Заявление Java if… else
  • 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.
    • На каждой итерации последняя цифра числа сохраняется в остатке.
    • Затем остаток рассчитывается с помощью Math.pow()функции 3 (количество цифр) и добавляется к результату.
    • Затем последняя цифра удаляется из 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 используется для подсчета количества цифр в номере. Это сжатая форма:

 for (; originalNumber! = 0; originalNumber / = 10) (n ++;)

Второй цикл for затем вычисляет результат, в котором на каждой итерации остаток рассчитывается на основе числа цифр n.

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

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