W tym programie nauczysz się wyświetlać wszystkie liczby Armstronga między dwoma podanymi przedziałami, niskim i wysokim, 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.
Ten program jest oparty na koncepcji sprawdzania, czy liczba całkowita jest liczbą Armstronga, czy nie.
Przykład: liczby Armstronga między dwiema liczbami całkowitymi
public class Armstrong ( public static void main(String() args) ( int low = 999, high = 99999; for(int number = low + 1; number < high; ++number) ( int digits = 0; int result = 0; int originalNumber = number; // number of digits calculation while (originalNumber != 0) ( originalNumber /= 10; ++digits; ) originalNumber = number; // result contains sum of nth power of its digits while (originalNumber != 0) ( int remainder = originalNumber % 10; result += Math.pow(remainder, digits); originalNumber /= 10; ) if (result == number) System.out.print(number + " "); ) ) )
Wynik
1634 8208 9474 54748 92727 93084
W powyższym programie sprawdzane są wszystkie liczby pomiędzy podanym przedziałem wysokim i niskim.
Po każdym sprawdzeniu liczba cyfr i wynik sumaryczny są przywracane do 0.