Program Java do sprawdzania numeru Armstronga

W tym programie nauczysz się sprawdzać, czy podana liczba jest liczbą Armstronga, czy nie. Dowiesz się, jak to zrobić, używając pętli for i pętli while w Javie.

Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:

  • Java while i zrób… while Loop
  • Instrukcja Java if… else
  • Java for Loop

Dodatnią liczbę całkowitą nazywamy liczbą Armstronga rzędu n, jeśli

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

W przypadku liczby Armstronga składającej się z 3 cyfr, suma sześcianów każdej cyfry jest równa samej liczbie. Na przykład:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153 to liczba Armstronga. 

Przykład 1: Sprawdź 3-cyfrowy numer Armstronga

 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."); ) )

Wynik

 371 to numer Armstrong.
  • Po pierwsze, podana wartość liczbowa (liczba) jest przechowywana w innej zmiennej całkowitej, originalNumber. Dzieje się tak, ponieważ musimy porównać wartości liczby końcowej i liczby pierwotnej na końcu.
  • Następnie pętla while jest używana do przechodzenia przez originalNumber, aż będzie równa 0.
    • W każdej iteracji ostatnia cyfra num jest przechowywana w pozostałej części.
    • Następnie reszta jest zasilana przez 3 (liczbę cyfr) za pomocą Math.pow()funkcji i dodawana do wyniku.
    • Następnie ostatnia cyfra jest usuwana z oryginalnego numeru po podzieleniu przez 10.
  • Na koniec porównuje się wynik i liczbę. Jeśli jest równa, jest to liczba Armstronga. Jeśli nie, to nie jest.

Przykład 2: Sprawdź numer Armstrong pod kątem n cyfr

 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."); ) )

Wynik

 1634 to numer Armstronga.

W tym programie zamiast pętli while użyliśmy dwóch pętli for.

Pierwsza pętla for służy do zliczania liczby cyfr w liczbie. Jest to skondensowana forma:

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

Następnie druga pętla for oblicza wynik, przy czym w każdej iteracji reszta jest zasilana liczbą cyfr n.

Odwiedź tę stronę, aby dowiedzieć się, jak wyświetlić wszystkie liczby Armstronga między dwoma interwałami.

Interesujące artykuły...