Програма Java за проверка на номера на Армстронг

В тази програма ще се научите да проверявате дали дадено число е армстронг число или не. Ще се научите да правите това, като използвате цикъл for и while в Java.

За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Java:

  • Java докато и да … докато Loop
  • Java, ако … друго Изявление
  • Java за Loop

Положително цяло число се нарича число на Армстронг от порядък n, ако

abcd … = a n + b n + c n + d n + …

В случай на число на Армстронг от 3 цифри, сумата от кубчета от всяка цифра е равна на самото число. Например:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 е число на Армстронг. 

Пример 1: Проверете числото на Армстронг за трицифрено число

 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 се използва за преброяване на броя на цифрите в числото. Това е кондензираната форма на:

 за (; originalNumber! = 0; originalNumber / = 10) (n ++;)

След това вторият цикъл for изчислява резултата, където при всяка итерация остатъкът се захранва от броя на цифрите n.

Посетете тази страница, за да научите как можете да показвате всички армстронг числа между два интервала.

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